<SEC-DOCUMENT>0001104659-22-098285.txt : 20220908
<SEC-HEADER>0001104659-22-098285.hdr.sgml : 20220908
<ACCEPTANCE-DATETIME>20220907174440
ACCESSION NUMBER:		0001104659-22-098285
CONFORMED SUBMISSION TYPE:	6-K
PUBLIC DOCUMENT COUNT:		109
CONFORMED PERIOD OF REPORT:	20220731
FILED AS OF DATE:		20220908
DATE AS OF CHANGE:		20220907

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			DESCARTES SYSTEMS GROUP INC
		CENTRAL INDEX KEY:			0001050140
		STANDARD INDUSTRIAL CLASSIFICATION:	SERVICES-PREPACKAGED SOFTWARE [7372]
		IRS NUMBER:				000000000
		STATE OF INCORPORATION:			A6
		FISCAL YEAR END:			0131

	FILING VALUES:
		FORM TYPE:		6-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	000-29970
		FILM NUMBER:		221232036

	BUSINESS ADDRESS:	
		STREET 1:		120 RANDALL ST
		CITY:			WATERLOO
		STATE:			A6
		ZIP:			N2V 1C6
		BUSINESS PHONE:		519-746-8110

	MAIL ADDRESS:	
		STREET 1:		120 RANDALL DRIVE
		CITY:			WATERLOO, ONTARIO, CANADA
		STATE:			XX
		ZIP:			N2V 1C6
</SEC-HEADER>
<DOCUMENT>
<TYPE>6-K
<SEQUENCE>1
<FILENAME>dsgx-20220731x6k.htm
<DESCRIPTION>FORM 6-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='UTF-8'?>

      <!-- iXBRL document created with: Toppan Merrill Bridge iXBRL 9.6.8167.22744 -->
      <!-- Based on: iXBRL 1.1 -->
      <!-- Created on: 9/7/2022 8:26:48 PM -->
      <!-- iXBRL Library version: 1.0.8167.22751 -->
      <!-- iXBRL Service Job ID: 20753aa8-d0e0-451a-a08a-a84d1372403e -->

  <html xmlns:dei="http://xbrl.sec.gov/dei/2021q4" xmlns="http://www.w3.org/1999/xhtml" xmlns:dsgx="http://www.descartes.com/20220731" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31" xmlns:country="http://xbrl.sec.gov/country/2021" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:srt="http://fasb.org/srt/2021-01-31" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:xbrldi="http://xbrl.org/2006/xbrldi"><head><meta http-equiv="content-type" content="text/html" /><title></title></head><body><div style="margin-top:30pt;"></div><div style="display:none;"><ix:header><ix:hidden><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="dei:DocumentPeriodEndDate" id="Tc_gmzZ-SWDJUG5sl_LTtfY8A_3_1">2022-07-31</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="dei:CurrentFiscalYearEndDate" id="Tc_KC9cx4Ec90iewmacJpOFKw_4_1">--01-31</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="dei:DocumentFiscalPeriodFocus" id="Tc_7cMhDlNk7UyG9AGGvTAa4w_5_1">Q2</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="dei:EntityCentralIndexKey" id="Tc_7V_nG0CFf0S57WMAW2FBOw_6_1">0001050140</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="dei:AmendmentFlag" id="Tc_F65Hw9jQK0OFEPaWMdi1YA_7_1">false</ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="dei:DocumentFiscalYearFocus" id="Tc_A8J9zqIaB0K4nxPJoobxqg_8_1">2023</ix:nonNumeric></ix:hidden><ix:references><link:schemaRef xlink:href="dsgx-20220731.xsd" xlink:type="simple"></link:schemaRef></ix:references><ix:resources><xbrli:context id="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_6_7_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_NcibMember_p3VADXYsnkOmra0hT-olgg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:NcibMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-06-07</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_vmTAj8vqTEWX4BNqKY-ywA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_9NbrpyJUbUixEiZw2CSJLA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_5dtDoUFn90Cf1Uz3aQBxUQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_IUSMXES3e0G98_Nl42VxJQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_0vSutx5O3E2OTQBYu6pIOQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_dJ4ciwEjBEajbrBRy0hwwA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_7T2YAquFC0aZRLJzcvYVfw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_w8Otneg3fkeoXZfNKS70XQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_pUGHBNsNok6WZDQYnp7-0w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_SROVFoXSFUi2HB_eu2FtaQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_AFLvLrkv7E-PjtjbQbdT6g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_I6V1RBq5OEi2iCQW2H25fQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_vxFFOi_UTUm97LTRGmZo_Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_G2YKQCozLkiqmNfVx3GYzw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_szPTAZYeFU-GSSCfwN7xHg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_lidI5ZLt1UubjTcc2dHpNA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_XRgs6qBC3EydW7DXSKiU-Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_7kER6yGQ5UixQs_pGKDBxA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_RfDICflvCUCMrKJONVf4OQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_H6X6jumyKUq_I2OeW1jgFQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xEMMXMJ2wEmS2XKAjknwPQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_jAjcsK4LGUCwDLYGQcPBLw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_aef84jkEt0a10HoxjWSO9A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_lMSiCLkpYkycKtX6lAIkdA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_zsQ_iyoOHUGLl26dG-RnNw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_yTpa1AUx-Eyj5brPEZ29AQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_9StPdzlsc06aOHVHesVO3g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_n-ruEF-ZQkuvOR7k_4ortg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_XJmVqfLn7UiFJvCqxwOAlA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_26mOEtGXe0GfTRnsQBkcJw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_H7_2is4f7UCcfvvfAI23GA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Xr1rfxtcIEavXwIdjmzWTQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_XnYSDwS3ckiVl3gWyWt_5Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_1_30_2022_To_1_30_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Cvlh80GwZkONLsvFvRGc9g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-30</xbrli:startDate><xbrli:endDate>2022-01-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_UengJu3z4UW0I8qVKvgHTA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_H6_bruhxJ0-p58CUiuS77w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_CI-4MPED-ke4lzaujLl9Sw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_dsgx_cnst_date_20240131_k2HD3LKap0ehF6JYckIKpQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2024-01-31</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_A7WtsFHS9kmXI4q2dGn2gA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_LicenseMember_TB9HG7ofT0OWXw7So_cm1g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_btaY4H9daEma1W8qLvthrQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_vbX-BxKaYkulIK-ayneTqw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_V25NG4_cvUWiicFrilzxtw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_US_LM8UEWr-akK4uz9XAMOzEw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_CA_PCO3YgDJ10-7E7HGGWLnRw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_BikqrCJ3xEyS9Q-KDI86Ow"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_LicenseMember_Ku6UHMAKWkKcmy2Hmd9iHQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_xQV0g9YTjEWhiV6TK6Xs0Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_7aOIDzHHike5efYGK3u0Ng"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_XqUNulpGiEyNd8I7oLR4OA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_US_wn0HajC2nkul8AtuYTpmEA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_CA_GWK4x4v2CEO_XLZfGy4bag"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_ServiceMember_43sUi3ul-UOzGe1J9Gy58g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_LicenseMember_3xas_FV3M0a4zfLl70egdg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_nrWbupFMDkiD5GLPdJg2vQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_PXEq-FoxX0GyI-x9c5j4sw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_6rNcHEtOs0i2BlhU3n3nEw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_US_rdpHPX8-RkG7V9SXI0qxcA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_CA_zWrhy0zO8ESEDpZaYPzUVw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_ServiceMember_jy6bqD3tY0GKq9Sx1SkZ_g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_LicenseMember_S3YLuvmZpEq_FkwndXvsfw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_rmXOAYu2RU-9ipiaM52qPQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_FL7r54afS0a9LIn9iwwnYQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_3l-CMECCdkS3gfrkAOIktA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_US_XqbktfH3ZU6TXY2HllApHg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_CA_CPoxotEBkEWfPnuMEyPhGA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_8O7PftPd6kKdVOK7zscclQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:AssetUnderConstructionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_zMPNAff-PUSrXTaEHWbdVA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:AssetUnderConstructionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_4_21_2022_To_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_vMPO0h0pMEy6O0AHxSKXHA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-04-21</xbrli:startDate><xbrli:endDate>2022-04-21</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_7_2021_To_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_xCNnbTGwLU-vcaIGLLrvGA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-07</xbrli:startDate><xbrli:endDate>2021-05-07</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_26_2021_To_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_x__u-pV_nEq-QJ3t-xKcyg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-26</xbrli:startDate><xbrli:endDate>2021-02-26</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_QT0R4zJ-lEe-crbpb0CUoA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_mqWjbqsK1kmwYw887dl3kQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_ndkrK77qHE2lHkfXCtbMXQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_ixS2ZjsVFkuqe5c-WhJ-qQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_Rgrvfe8BQkS-fShoh1IPng"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_76rjKFE2NEGWTNevfob01w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_srt_StatementGeographicalAxis_country_US_LbmGIhCiuk-iVF09MPnPkA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_srt_StatementGeographicalAxis_country_CA_B2E8GQYrAU2BZJgGDS2jAA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_P1QjWkrs6EK3EhZe-wKx1A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_XQ6JIHRYg0ytZMqjwOVMQw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_srt_StatementGeographicalAxis_country_US_fucxjzVaIkGPSUNQyy_CLA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_srt_StatementGeographicalAxis_country_CA_8XdYZkFfHUSnPuVREOILAw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_ePDREw-hwEOqAl9sq5VXGg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_uxajUT6_xEqICQOm5s4x-g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_QrHwPtBCn0G6rm5sPolb8Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_8eb08UTV2E6dj0RcdWKePw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_C96Dr75OjU-nPOSi3ga22Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_BuF-t3Bz_kGIMG3EfyvcZQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_5Tlo4Mm440Kh4zOEKiveOw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_oxyILRxCUEu1L7yVm8LWeg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_X7rdlViRlEStVH72jDoPjw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Q4k64j2ck0SOPLIylYgG8w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_gKtXqmCtHEy0rsHiVP-Smw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_qKEQbeCwuEWW42gy5p0DKQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_prUnCE0vHU2CZlObbI7c3A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_dI9hliU8u0aWn49nyDCxmg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_8ld1rLDRxkauUyyOv5MDHA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_L6Q5tEToZUWhso0DTYFOZg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_h_C-Kly-a0ucy4VaYbFs6Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_-t39gF7wsECdYI-YEspJVA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_XDYsvV5MHkKRYDAH2lTCeA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Sn34rR_Epk6mFWBsDLq3SQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_D0SXk_MvtEiXuLwcU3UvhA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_ivbz6pEjTkW4wgJUuIQz_g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_-b8w6z08Lk6uPxuISf1UjA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_n3NzygIUW0Gjb1bXqN7Z-Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_cT23BQJCOEuG3s0rXxDfhA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_4Lprca85P0G6A5DuBrABKg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_dkGvOwj5QE2c4_DnhYbhAQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_tKsR3oiPt0qKSYCzx4QzFg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember__c_0Fqe_eUSGiDS4dt4L4w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_YDlDaiWMIU6cSFtE7NDx3A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_3O2Xh6XHKkmwdO2etZWiPw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_YwRWhpjCfkqbXp9akDu8IA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_uHyoEcUDJEKU4bbPWWLGug"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember__ZKuFHdJIUuHMkN80GGSYQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_tM0Q6ljYx0G_13Wkrs6Xdg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_9XJhAKFCC02Gr9iVtZ5R3w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_4xnsem-OsUqUypo1njoeTw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_BIipgXZVjUe-1xxh7CEkbA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_mtA9I9pvSE6FG3lE9Ytp1g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_BJ-b9jesj0WuJ8oHn98s5g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_CreditFacilityAxis_dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_8EoJhpV3JkaHwSBGcVw7JA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_ZQWWnPjZ4kC4vtoza0sUuQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">dsgx:CanadaOrUsPrimeRateBaOrLiborMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_3hEr1zcNckuzwGc5-3PeAA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">dsgx:CanadaOrUsPrimeRateBaOrLiborMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_30_2022_zCu9-8V-R0mFcH6RwHC_bg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2021_4qpvWrhC5keRXw9vf1TjjA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_30_2021_n_mylqxJ8kqkaZJffCncEg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2021__kQXoKs9nka2lPH4vSYNEQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_pbr03QPzQUatoSPb1zHP2A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NH4dmPCXqkyt43LKd_9yUQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_7RMJZqFlMkGsAfeqqsS9Kg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_oGYvyNzWREuBRs8ipLm-fA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_DYR0hRlfQE--mDBFjeHcEg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_mqocVqaz_UeI7Mpi3mlvug"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_W_bJFM3kM02MWq6T9JBYYQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_a8z5KL7um0mywjtvjlv5UA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_XSJ4VRiEDEOcbBrxySGr3g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_61U7MU3Ta0OC1vAXNFhSNA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ycKV5WOoakO_m-juiyY7bA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_pCNbRm9qUkqGGcbmxYAUpw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_NhHWTTjKWUKaIx47t07K3w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_ZirpZTUoA0KXFGT5Q7rnow"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_PFLLwpuBJ06e5sYPxtoxdg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputLongTermRevenueGrowthRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_CO6nEWWreUOXktlWlKnuDA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_6DTytCMy60u5rYpVCAPrHg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputLongTermRevenueGrowthRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_ix7icJ5ImUq54HrratjVaQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputDiscountRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_7G3pbM-DYEWiXhPpixkIgQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pFzojNMomkGqcY8qpc5UZg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_XsbBqKi2rE2r74EqkdhjVQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreKontainersShiptrackGreenmileNetchbAndXpsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_H41q9OpAaEGAqt9H4-r8Dw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:Fiscal2023AcquisitionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_MiURUplOH0CtyEhurZAfRw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:Fiscal2023AcquisitionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_nx45mrSRGESp-DasdCzZRw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsTechnologyLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-06-03</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CWwsUhWXiUCJ5-FFM7zwFg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-04-21</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_WWC9hrkdrUCOyGkeDitcJw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-02-09</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_LN8FgHU-9UKvbyLQ1r6s7w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-05-07</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_bvImWuAHoUmZ6rgOA5DqxA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-07-08</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_TcPMxsqhxk27UTsx_qIYuA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-02-26</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_U28XRtBbs0muZk8nwV65Qw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_Ljk9gnkYv0uPaFwxEUDYYQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_38FZhPckMEWtoFafv9utdg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_d3OVZMS_mEuCZt7lNdssIg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_f3x1loSyykWR7KebNXxfpQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_K0dMOw3VzUa5f3G4Caw9OA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_T-Hh_4r-0EilKfJca4OPYw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_n9nqHO6VTUSFL303QTkaqQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_GOd_19LxTkavOI2wfz95Jg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_-9Xns5fe8kyNihKddZEjtQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_4Ji9IXYRNUSjeGWZHHngCw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_9tSHiegeAkacW64g2wUp3Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_EWhDl7ZVq0mCz3exeypa3w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_aTKnyMu5u0ejEEjX7YbwUQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_5ZjgfwxQ9kKeGsbBNwhZSA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_Un26geBFQUmm51U5nbRQMw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_aghjWuxy_k6oZu79HpTW8A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_cEHL2mrLr0ubBY4lGGzQCg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_twm-9YcOLE2Hg0GKqFe7QA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_DTHJ6vl5_EOgIujhxjq3lw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_zOkqDq1YqkqEBgq3qiIRZg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_iG_J76izmUyc5RJ9s8njPg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_joDTZT4GSUCcdfOMtuwScQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_ZDrTvwcgTU-FjwM-oOw_JA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_2WWtkH9yn0ecjKc9l7BKEw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_SOgjxiN7tk2dm_9zqR5blA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_P_PkBBpCwku3mwVmPuuTpg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_oKsrcXb9fEOJ4N6aQC__mA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_9d2A1tfQ0U-jNDnpaKT2ug"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_8fDNx1qKbUiop-sR30AUtw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_2ZoOWAmAlUqc8VUYvo8jnQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_rvEMMoDC00y6VOD4Xt6k7w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">dsgx:EquipmentInstalledWithCustomersMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_10wEBbhXE0i7e7F3PRaiXA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_mecr5EZecEGonKzTLPMcuA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_38NjDFI5L0-3FlVS6nvthg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_VRN0h6rvbkKRitpp1RHZ0w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">dsgx:EquipmentInstalledWithCustomersMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_7_15_2022_To_7_15_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_ShelfProspectusMember_i6pyt466SE63916yJIm3lw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:ShelfProspectusMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-07-15</xbrli:startDate><xbrli:endDate>2022-07-15</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_16_2020_To_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_9LgcrpS3ukSQ1CCrr0Y10w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:The2020BaseShelfProspectusMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-07-16</xbrli:startDate><xbrli:endDate>2020-07-16</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_Nwn-TiE_lkKwtV7AsYtq2w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:The2020BaseShelfProspectusMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-07-16</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_6_7_2022_To_6_7_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_NcibMember_RAmCuWCVF0WQXKHFuf7B2A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:NcibMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-06-07</xbrli:startDate><xbrli:endDate>2022-06-07</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_75Y7Xv7uqkWercYgCqOHjw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_u8Eak7lD3EC3U2Nh5WI3gw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_YliF3vhnP0iE11BzFydcBg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_QjMMSpUPzUarN6J1mlT5hA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_EbAIlI12WUa-adjEMKumIQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_z2sIJoskBkObtdU2ysRlgA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_kA9fbVE_20-Sy3Zv7XzheA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_xEjZ57AfGkmUCg9foKrNYg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_ESIN5UiZbkK2LwQKiga11g"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_pOpE-IdgR0qB035YIFHkFw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_hWz9s3-KH0CY2efj4UpdAQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_1_31_2022_6FniHWIdoEaqbZuSVaSgbA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2022-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_TK7uSnCdt0a5El16GyXQCg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-05-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_7D-XtcsX3kiVBp_0hZ6H6w"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_5_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_gYOO354_Qkmac19gV8PY1Q"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_dEb3HPSleUS1f39A7vfEuw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-02-01</xbrli:startDate><xbrli:endDate>2021-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_w82LPY6N702UfvJ80lTeaA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="Duration_6_3_2022_To_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_kQNCPTBUTUmJgPwQDwIBjQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsTechnologyLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-06-03</xbrli:startDate><xbrli:endDate>2022-06-03</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Cai7QNLiXUWU0eTBBetnkA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-09</xbrli:startDate><xbrli:endDate>2022-02-09</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_C9U7QPU_RUCt3x_oI08wPg"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreKontainersShiptrackGreenmileNetchbAndXpsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_7_8_2021_To_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_Cc-cEfJriUuQE967stYLJA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-07-08</xbrli:startDate><xbrli:endDate>2021-07-08</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_UjeVWj1jQEaRZOq-I18Tng"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-02-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-07-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw"><xbrli:divide><xbrli:unitNumerator><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unitNumerator><xbrli:unitDenominator><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unitDenominator></xbrli:divide></xbrli:unit><xbrli:unit id="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_segment_Utkw4iHSj0-_Y-UHchFxgQ"><xbrli:measure>dsgx:segment</xbrli:measure></xbrli:unit><xbrli:unit id="Unit_Standard_EUR_Zg9NuFmbbkqFLhsENpy6DA"><xbrli:measure>iso4217:EUR</xbrli:measure></xbrli:unit></ix:resources></ix:header></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;padding-top:1pt;border-bottom:1.0pt solid #000000;border-top:3.0pt solid #000000;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p><a id="_1136304c_79dc_4174_810b_dd09ae73f897"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:18pt;font-weight:bold;">UNITED STATES</b></p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:18pt;font-weight:bold;">SECURITIES AND EXCHANGE COMMISSION</b></p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Washington, D.C. 20549</b></p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#xA0; </p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:18pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">FORM </b><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="dei:DocumentType" id="Narr_NunbIWEgZ0auEUOeFRvL2g"><b style="font-weight:bold;">6-K</b></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#xA0; </p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:12pt;font-weight:bold;">REPORT OF FOREIGN PRIVATE ISSUER</b></p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:12pt;font-weight:bold;">PURSUANT TO RULE 13a-16 OR 15d-16 UNDER</b></p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-size:12pt;font-weight:bold;">THE SECURITIES EXCHANGE ACT OF 1934</b></p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#xA0; </p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#xA0; </p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">For the month of September 2022</p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#xA0; </p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Commission File Number:&#xA0;&#xA0;000-29970</p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#xA0; </p></td></tr><tr style="height:12.75pt;"><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#xA0; </p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:18pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">THE </b><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="dei:EntityRegistrantName" id="Narr_6ZhdtBj1hUS7T4FHt0x8Fw"><b style="font-weight:bold;">DESCARTES SYSTEMS GROUP INC</b></ix:nonNumeric><b style="font-weight:bold;">.</b></p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">(Translation of registrant&#x2019;s name into English)</p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#xA0; </p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">120 Randall Drive</b></p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Waterloo, Ontario</b></p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Canada N2V 1C6</b></p></td></tr><tr><td style="vertical-align:top;width:100%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">(Address of principal executive office)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Indicate by check mark whether the registrant files or will file annual reports under cover of Form 20-F or Form 40-F.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Form 20-F [ ]<span style="font-family:'Wingdings2';">&#xA0;</span>Form 40-F [x]</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Indicate by check mark if the registrant is submitting the Form 6-K in paper as permitted by Regulation S-T Rule 101(b)(1): [ ]</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Note</b>: Regulation S-T Rule 101(b)(1) only permits the submission in paper of a Form 6-K if submitted solely to provide an attached annual report to security holders.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Indicate by check mark if the registrant is submitting the Form 6-K in paper as permitted by Regulation S-T Rule 101(b)(7): [ ]</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Note: </b>Regulation S-T Rule 101(b)(7) only permits the submission in paper of a Form 6-K if submitted to furnish a report or other document that the registrant foreign private issuer must furnish and make public under the laws of the jurisdiction in which the registrant is incorporated, domiciled or legally organized (the registrant&#x2019;s &#x201C;home country&#x201D;), or under the rules of the home country exchange on which the registrant&#x2019;s securities are traded, as long as the report or other document is not a press release, is not required to be and has not been distributed to the registrant&#x2019;s security holders, and, if discussing a material event, has already been the subject of a Form 6-K submission or other Commission filing on EDGAR.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 72pt;"><span style="font-variant:small-caps;font-weight:bold;margin-left:0pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;padding-top:1pt;text-align:right;border-bottom:3.0pt solid #000000;border-top:1.0pt solid #000000;margin:0pt;"><span style="font-size:1pt;font-variant:small-caps;font-weight:bold;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:6pt;font-variant:small-caps;font-weight:bold;visibility:hidden;">&#x200B;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;text-align:right;margin:0pt;"><span style="font-size:0pt;font-variant:small-caps;font-weight:bold;visibility:hidden;">&#x200B;</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:10.35%;padding-right:10.35%;position:relative;"><div style="margin-top:21.6pt;min-height:41.75pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_aa27dd1f_8052_4a1f_98f4_32fb8c68d1ff"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 72pt;">The attached Quarterly Report to Shareholders for the Second Quarter of Fiscal 2023 is furnished herewith as Exhibit 99.1.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 72pt;">The attached Press Release Issued September 7, 2022 is furnished herewith as Exhibit 99.2.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">SIGNATURES</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:36pt;margin:0pt;">Pursuant to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">&#x200B;</span></p><div style="margin-left:0pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td colspan="2" style="vertical-align:top;width:41.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">THE DESCARTES SYSTEMS GROUP INC.</b></p></td><td style="vertical-align:top;width:58.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">&#x200B;</span></p></td></tr><tr style="height:1pt;"><td colspan="2" style="vertical-align:top;width:41.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:top;width:58.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">&#x200B;</span></p></td></tr><tr style="height:1pt;"><td colspan="2" style="vertical-align:top;width:41.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">(Registrant)</p></td><td style="vertical-align:top;width:58.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">&#x200B;</span></p></td></tr><tr style="height:1pt;"><td colspan="2" style="vertical-align:top;width:41.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:top;width:58.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">&#x200B;</span></p></td></tr><tr style="height:1pt;"><td colspan="2" style="vertical-align:top;width:41.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:top;width:58.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">&#x200B;</span></p></td></tr><tr style="height:1pt;"><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">By:</p></td><td style="vertical-align:top;width:34.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">/s/ Peter V. Nguyen&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:top;width:58.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">&#x200B;</span></p></td></tr><tr style="height:1pt;"><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Name:</p></td><td style="vertical-align:top;width:34.3%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Peter V. Nguyen</p></td><td style="vertical-align:top;width:58.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">&#x200B;</span></p></td></tr><tr style="height:1pt;"><td style="vertical-align:top;width:7.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Title:</p></td><td style="vertical-align:top;width:34.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">General Counsel</p></td><td style="vertical-align:top;width:58.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">&#x200B;</span></p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Date:&#xA0; September 7, 2022</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.3%;border:0;margin:30pt 10.35% 30pt 10.35%;"></div><div style="max-width:100%;padding-left:10.35%;padding-right:10.35%;position:relative;"><div style="margin-top:21.6pt;min-height:41.75pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_d0852b8f_a08e_46ca_b8fe_73ffe742a4a1"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">EXHIBITS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><div style="margin-left:0pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:top;width:17.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:80.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:17.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Exhibit No.</b></p></td><td style="vertical-align:top;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">&#xA0;&#xA0;&#xA0;&#xA0;</p></td><td style="vertical-align:top;width:80.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Description</b></p></td></tr><tr><td style="vertical-align:top;width:17.6%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:top;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:top;width:80.33%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:top;width:17.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">99.1</p></td><td style="vertical-align:top;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:top;width:80.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220731xex99d1.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Quarterly Report to Shareholders for the Second Quarter of Fiscal 2023</span></a></p></td></tr><tr><td style="vertical-align:top;width:17.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">99.2</p></td><td style="vertical-align:top;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:top;width:80.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="-sec-extract:exhibit;font-family:&quot;'Times New Roman','Times','serif'&quot;;" href="dsgx-20220731xex99d2.htm"><span style="font-family:'Times New Roman','Times','serif';font-style:normal;font-weight:normal;">Press Release Issued September 7, 2022</span></a></p></td></tr><tr><td style="vertical-align:top;width:17.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Ex. 101</p></td><td style="vertical-align:top;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:top;width:80.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interactive Data File (formatted in Inline XBRL)</p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:79.3%;border:0;margin:30pt 10.35% 30pt 10.35%;"></div><div style="max-width:100%;padding-left:10.35%;padding-right:10.35%;position:relative;"><div style="margin-top:21.6pt;min-height:41.75pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;margin-left:10.35%;margin-right:10.35%;margin-top:30pt;page-break-after:avoid;width:79.3%;border:0;"></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-99.1
<SEQUENCE>2
<FILENAME>dsgx-20220731xex99d1.htm
<DESCRIPTION>EXHIBIT 99.1
<TEXT>
<XBRL>
<?xml version='1.0' encoding='UTF-8'?>

      <!-- iXBRL document created with: Toppan Merrill Bridge iXBRL 9.6.8167.22744 -->
      <!-- Based on: iXBRL 1.1 -->
      <!-- Created on: 9/7/2022 8:26:59 PM -->
      <!-- iXBRL Library version: 1.0.8167.22751 -->
      <!-- iXBRL Service Job ID: 20753aa8-d0e0-451a-a08a-a84d1372403e -->

  <html xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31" xmlns:dsgx="http://www.descartes.com/20220731" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:country="http://xbrl.sec.gov/country/2021" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:srt="http://fasb.org/srt/2021-01-31" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:xbrldi="http://xbrl.org/2006/xbrldi"><head><meta content="text/html" http-equiv="content-type" /><title></title></head><body><div style="margin-top:30pt;"></div><div style="display:none;"><ix:header><ix:hidden><ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" xs:nil="true" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" name="us-gaap:CommitmentsAndContingencies" id="Hidden_krbHnVskr0azyJOMV0KMQw"></ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" xs:nil="true" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" name="us-gaap:CommitmentsAndContingencies" id="Hidden_uoQLI7n48EauH-LAxFpz4Q"></ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="INF" name="us-gaap:CommonStockSharesIssued" id="Hidden_a8_9DglvGECN4uvOONe2Fw">84756210</ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="INF" name="us-gaap:CommonStockSharesOutstanding" id="Hidden_EDCYd87Tq0GahtIYYqlOkQ">84788547</ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="As_Of_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_PFLLwpuBJ06e5sYPxtoxdg" decimals="0" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput" id="Hidden_pSZxK8rp70Ke_RaEGReiMQ">10</ix:nonFraction><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="As_Of_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_6DTytCMy60u5rYpVCAPrHg" decimals="0" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput" id="Hidden_EhMWg6eEBEe5DICOqp8ajg">13</ix:nonFraction></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="dsgx-20220731.xsd"></link:schemaRef></ix:references><ix:resources></ix:resources></ix:header></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;min-height:78.76pt;"><a id="_d6009683_5445_4983_9e60_b96496f449aa"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Exhibit 99.1</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';"><img src="dsgx-20220731xex99d1001.jpg" alt="Graphic" style="display:inline-block;height:64.35pt;left:0%;padding-bottom:0.15pt;position:relative;top:0pt;width:321pt;" /></span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><div style="height:0pt;position:relative;width:100%;"><div style="height:67.51pt;position:absolute;right:50%;top:11.25pt;transform:translateX(50%);width:513.04pt;z-index:-9223372036603117568;"><div style="height:66.96pt;left:0pt;padding-bottom:0.55pt;position:relative;width:512.64pt;"><img src="dsgx-20220731xex99d1002.jpg" alt="Graphic" style="height:66.96pt;width:512.64pt;" /></div></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><div style="height:0pt;position:relative;width:100%;"><div style="height:43.5pt;left:30.42%;margin-bottom:3.6pt;margin-top:3.6pt;max-width:69.58%;position:absolute;top:11.5pt;width:342pt;z-index:251659264;"><div style="height:42.75pt;left:0pt;padding-bottom:0.75pt;position:relative;top:0pt;width:342pt;"><div style="height:42.75pt;left:0pt;padding-bottom:0pt;position:relative;top:0pt;width:342pt;"><div style="height:100%;left:0pt;position:relative;text-indent:0pt;top:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;width:100%;margin:0pt 7.2pt 0pt 0pt;"><b style="color:#ffffff;font-family:'Verdana';font-size:17pt;font-weight:bold;">T</b><b style="color:#ffffff;font-family:'Verdana';font-size:13pt;font-weight:bold;">HE</b><b style="color:#ffffff;font-family:'Verdana';font-size:17pt;font-weight:bold;"> D</b><b style="color:#ffffff;font-family:'Verdana';font-size:13pt;font-weight:bold;">ESCARTES</b><b style="color:#ffffff;font-family:'Verdana';font-size:17pt;font-weight:bold;"> S</b><b style="color:#ffffff;font-family:'Verdana';font-size:13pt;font-weight:bold;">YSTEMS</b><b style="color:#ffffff;font-family:'Verdana';font-size:17pt;font-weight:bold;"> G</b><b style="color:#ffffff;font-family:'Verdana';font-size:13pt;font-weight:bold;">ROUP</b><b style="color:#ffffff;font-family:'Verdana';font-size:17pt;font-weight:bold;"> I</b><b style="color:#ffffff;font-family:'Verdana';font-size:13pt;font-weight:bold;">NC.</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;width:100%;margin:0pt 7.2pt 0pt 0pt;"><b style="color:#ffffff;font-family:'Verdana';font-size:13pt;font-weight:bold;">Q</b><b style="color:#ffffff;font-family:'Verdana';font-size:11pt;font-weight:bold;">UARTERLY</b><b style="color:#ffffff;font-family:'Verdana';font-size:13pt;font-weight:bold;"> R</b><b style="color:#ffffff;font-family:'Verdana';font-size:11pt;font-weight:bold;">EPORT</b><b style="color:#ffffff;font-family:'Verdana';font-size:13pt;font-weight:bold;"> To S</b><b style="color:#ffffff;font-family:'Verdana';font-size:11pt;font-weight:bold;">HAREHOLDERS</b></p></div></div></div></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-size:11pt;font-variant:small-caps;font-weight:bold;">US GAAP Financial Results for the Second Quarter of Fiscal 2023</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-variant:small-caps;font-weight:bold;visibility:hidden;">&#x200B;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;margin:0pt;"><span style="font-family:'Verdana';font-size:0pt;font-variant:small-caps;font-weight:bold;visibility:hidden;">&#x200B;</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;min-height:12.15pt;"><a id="_9d5c284d_c057_43d3_a46b_df7775fc4891"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:5pt;font-weight:bold;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="TOC"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">TABLE OF CONTENTS</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#MANAGEMENTSDISCUSSIONANDANALYSISOFFINANC"><span style="font-style:normal;font-weight:normal;">M</span><span style="font-size:9pt;font-style:normal;font-weight:normal;">ANAGEMENT&#x2019;S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;"> </span><span style="font-style:normal;font-weight:normal;">D</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ISCUSSION AND </span><span style="font-style:normal;font-weight:normal;">A</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">NALYSIS OF </span><span style="font-style:normal;font-weight:normal;">F</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">INANCIAL </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONDITION AND </span><span style="font-style:normal;font-weight:normal;">R</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ESULTS OF </span><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">PERATIONS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">3</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#OVERVIEW_153434"><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">VERVIEW</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">6</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONSOLIDATEDOPERATIONS_544865"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">PERATIONS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">11</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#QUARTERLYOPERATINGRESULTS_456981"><span style="font-style:normal;font-weight:normal;">Q</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">UARTERLY </span><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">PERATING </span><span style="font-style:normal;font-weight:normal;">R</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ESULTS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">18</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#LIQUIDITYANDCAPITALRESOURCES_33729"><span style="font-style:normal;font-weight:normal;">L</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">IQUIDITY AND </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">APITAL </span><span style="font-style:normal;font-weight:normal;">R</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ESOURCES</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">19</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#COMMITMENTSCONTINGENCIESANDGUARANTEES_46"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">OMMITMENTS, </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONTINGENCIES AND </span><span style="font-style:normal;font-weight:normal;">G</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">UARANTEES</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">22</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#OUTSTANDINGSHAREDATA_885645"><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">UTSTANDING </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">HARE </span><span style="font-style:normal;font-weight:normal;">D</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ATA</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">24</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#APPLICATIONOFCRITICALACCOUNTINGPOLICIESA"><span style="font-style:normal;font-weight:normal;">A</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">PPLICATION OF </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">RITICAL </span><span style="font-style:normal;font-weight:normal;">A</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">CCOUNTING </span><span style="font-style:normal;font-weight:normal;">P</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">OLICIES AND </span><span style="font-style:normal;font-weight:normal;">E</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">STIMATES</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">24</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CHANGEININITIALADOPTIONOFACCOUNTINGPOLIC"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">HANGE </span><span style="font-style:normal;font-weight:normal;">I</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">N / </span><span style="font-style:normal;font-weight:normal;">I</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">NITIAL </span><span style="font-style:normal;font-weight:normal;">A</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">DOPTION OF </span><span style="font-style:normal;font-weight:normal;">A</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">CCOUNTING </span><span style="font-style:normal;font-weight:normal;">P</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">OLICIES</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">25</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONTROLSANDPROCEDURES_964546"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONTROLS AND </span><span style="font-style:normal;font-weight:normal;">P</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ROCEDURES</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">25</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#TRENDSBUSINESSOUTLOOK_231983"><span style="font-style:normal;font-weight:normal;">T</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">RENDS / </span><span style="font-style:normal;font-weight:normal;">B</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">USINESS </span><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">UTLOOK</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">25</span></p></td></tr><tr><td style="vertical-align:top;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CERTAINFACTORSTHATMAYAFFECTFUTURERESULTS"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ERTAIN </span><span style="font-style:normal;font-weight:normal;">F</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ACTORS </span><span style="font-style:normal;font-weight:normal;">T</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">HAT </span><span style="font-style:normal;font-weight:normal;">M</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">AY </span><span style="font-style:normal;font-weight:normal;">A</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">FFECT </span><span style="font-style:normal;font-weight:normal;">F</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">UTURE </span><span style="font-style:normal;font-weight:normal;">R</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ESULTS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">29</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONDENSEDCONSOLIDATEDBALANCESHEETS_69858"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONDENSED </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">B</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ALANCE </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">HEETS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">43</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATI"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONDENSED </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">TATEMENTS OF </span><span style="font-style:normal;font-weight:normal;">O</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">PERATIONS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">44</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONDENSEDCONSOLIDATEDSTATEMENTSOFCOMPREH"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONDENSED </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">TATEMENTS OF </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">OMPREHENSIVE </span><span style="font-style:normal;font-weight:normal;">I</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">NCOME</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">45</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONDENSEDCONSOLIDATEDSTATEMENTSOFSHAREHO"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONDENSED </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">TATEMENTS OF </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">HAREHOLDERS&#x2019; </span><span style="font-style:normal;font-weight:normal;">E</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">QUITY</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">46</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLO"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONDENSED </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">TATEMENTS OF </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ASH </span><span style="font-style:normal;font-weight:normal;">F</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">LOWS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">47</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#NOTESTOCONDENSEDCONSOLIDATEDFINANCIALSTA"><span style="font-style:normal;font-weight:normal;">N</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">OTES&#xA0;TO </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONDENSED </span><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ONSOLIDATED </span><span style="font-style:normal;font-weight:normal;">F</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">INANCIAL </span><span style="font-style:normal;font-weight:normal;">S</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">TATEMENTS</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">48</span></p></td></tr><tr><td style="vertical-align:bottom;width:93.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><a style="font-family:'Verdana';font-size:12pt;" href="#CORPORATEINFORMATION_285379"><span style="font-style:normal;font-weight:normal;">C</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">ORPORATE </span><span style="font-style:normal;font-weight:normal;">I</span><span style="font-size:10pt;font-style:normal;font-weight:normal;">NFORMATION</span></a></p></td><td style="vertical-align:bottom;width:6.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">66</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;margin:0pt;"><span style="font-family:'Verdana';font-size:0pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;min-height:12.15pt;"><a id="_d2575e75_5a22_4925_9aaa_4e52535b2b6e"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="MANAGEMENTSDISCUSSIONANDANALYSISOFFINANC"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">MANAGEMENT&#x2019;S DISCUSSION AND ANALYSIS OF</b><b style="font-family:'Verdana';font-weight:bold;"><br /></b><b style="font-family:'Verdana';font-weight:bold;">FINANCIAL CONDITION AND RESULTS OF</b><b style="font-family:'Verdana';font-weight:bold;"><br /></b><b style="font-family:'Verdana';font-weight:bold;">OPERATIONS</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our Management&#x2019;s Discussion and Analysis of Financial Condition and Results of Operations (&#x201C;MD&amp;A&#x201D;) contains references to Descartes using the words &#x201C;we,&#x201D; &#x201C;us,&#x201D; &#x201C;our&#x201D; and similar words and the reader is referred to using the words &#x201C;you,&#x201D; &#x201C;your&#x201D; and similar words.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">This MD&amp;A also refers to our fiscal years. Our fiscal year commences on February 1</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each year and ends on January 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the following year. Our current fiscal year, which will end on January 31, 2023, is referred to as the &#x201C;current fiscal year,&#x201D; &#x201C;fiscal 2023,&#x201D; &#x201C;2023&#x201D; or using similar words. Our previous fiscal year, which ended on January 31, 2022, is referred to as the &#x201C;previous fiscal year,&#x201D; &#x201C;fiscal 2022,&#x201D; &#x201C;2022&#x201D; or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, 2024 refers to the annual period ending January 31, 2024 and the &#x201C;fourth quarter of 2024&#x201D; refers to the quarter ending January 31, 2024.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">This MD&amp;A, which is prepared as of September 7, 2022, covers our quarter and six month period ended July 31, 2022, as compared to our quarter and six month period ended July 31, 2021. You should read this MD&amp;A in conjunction with our unaudited condensed consolidated financial statements for our second quarter and six month period of fiscal 2023 that appear elsewhere in this Quarterly Report to Shareholders. You should also read this MD&amp;A in conjunction with our audited annual consolidated financial statements, related notes thereto and the related MD&amp;A for fiscal 2022 that are included in our most recent annual report to shareholders (the &#x201C;2022 Annual Report&#x201D;), as filed on March 2, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We prepare and file our consolidated financial statements and MD&amp;A in United States (&#x201C;US&#x201D;) dollars and in accordance with US generally accepted accounting principles (&#x201C;GAAP&#x201D;). All dollar amounts we use in this MD&amp;A are in US currency, unless we indicate otherwise.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have prepared this MD&amp;A with reference to the Form 51-102F1 MD&amp;A disclosure requirements established under National Instrument 51-102 &#x201C;Continuous Disclosure Obligations&#x201D; (&#x201C;NI 51-102&#x201D;) of the Canadian Securities Administrators. As it relates to our financial condition and results of operations for the interim period ended July 31, 2022, pursuant to NI 51-102, this MD&amp;A updates the MD&amp;A included in the 2022 Annual Report.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Additional information about us, including copies of our continuous disclosure materials such as our annual information form, is available on our website at http://www.descartes.com, through the EDGAR website at http://www.sec.gov or through the SEDAR website at http://www.sedar.com.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of the date of this MD&amp;A, the conflict between Russia and Ukraine (the &#x201C;Ukraine Conflict&#x201D;) is resulting in significant uncertainty within the global economy. Although we have very limited customer and other direct business dealings within either of Russia or Ukraine, the conflict between the countries has impacted economic and trade activity across Europe and worldwide as trade lanes and supply chains are impacted. Russia is a major supplier of oil and gas to numerous countries and a further disruption in that supply could impact economic activity and transportation costs and general transportation availability on a global basis. In addition, the global impact of the extensive trade sanctions and financial controls related to Russia, Belarus or other countries are difficult to assess at the current time.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">As of the date of this MD&amp;A, the world also continues to experience a global pandemic related to the spread of the COVID-19 virus (the &#x201C;Pandemic&#x201D;). Businesses in many countries around the globe, including Canada, the United States and other countries in which we operate, have been required to close, or materially alter, their day-to-day operations due to government-ordered or recommended shut-downs and/or restrictions on </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">3</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">individuals and businesses which may impact the operations of those businesses. In our own case, we have implemented measures that allow our employees to work remotely from home locations and for us to continue to operate our business and service our customers. The expected future impact of the Pandemic and various public health protection measures, including travel restrictions, on the business of our customers, and the ongoing demand of those customers for our products and services, is still uncertain at this time, in part due to the uncertainty of the duration and scope of such restrictions on a geography-by-geography basis. As of the date of this MD&amp;A, and consistent with the comments we made in our MD&amp;A from recent quarters, we continue to observe some customers with reduced shipment volumes across various modes of transportation and we are aware of some customers who have reduced or temporarily suspended operations or are otherwise experiencing financial hardship in their business that may temporarily or permanently impact their demand for our products and services. However, at the same time we have seen several other areas of our business where shipment and order volumes have remained stable or, in some cases, have seen increased volumes as a result of the Pandemic.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We remain well positioned to adjust to market conditions to assist our customers as they work to manage their transportation, logistics and supply chain processes during the Pandemic. As noted above, we have been able to transition our workforce such that the majority of our workforce can work remotely and continue to service and support our customers and ensure the uninterrupted availability of our various solutions, most of which are delivered by way of a software-as-a-service or cloud-based delivery model. In addition, the nature of the products and services that we provide to the transportation and logistics community have been classified as an &#x201C;essential service&#x201D; in the majority of the markets in which we have personnel located which allows us, to the extent necessary, to have requisite personnel safely attend at our various data-centers and hosting facilities to ensure the continuity of our services under state-of-emergency and shelter-in-place orders that may be in place in various jurisdictions globally.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Certain statements made in this Quarterly Report to Shareholders, constitute forward-looking information for the purposes of applicable securities laws (&#x201C;forward-looking statements&#x201D;), including, but not limited to: statements in the &#x201C;Trends / Business Outlook&#x201D; section and statements regarding our expectations concerning future revenues and earnings, including potential variances from period to period; our assessment of the current and future potential impact of both the Ukraine Conflict and the Pandemic and related public health protection measures on our business; results of operations and financial condition; our expectations regarding the cyclical nature of our business; mix of revenues and potential variances from period to period; our plans to focus on generating services revenues yet to continue to allow customers to elect to license technology in lieu of subscribing to services; our expectations on losses of revenues and customers; our baseline calibration; our ability to keep our operating expenses at a level below our baseline revenues; our future business plans and business planning process; allocation of purchase price for completed acquisitions; our expectations regarding future restructuring charges and cost-reduction activities; expenses, including amortization of intangible assets and stock-based compensation; goodwill impairment tests and the possibility of future impairment adjustments; capital expenditures; acquisition-related costs, including the potential for further performance-based contingent consideration; our liability with respect to various claims and suits arising in the ordinary course; any commitments referred to in the &#x201C;Commitments, Contingencies and Guarantees&#x201D; section of this MD&amp;A; our intention to actively explore future business combinations and other strategic transactions; our liability under indemnification obligations; our reinvestment of earnings of subsidiaries back into such subsidiaries; our dividend policy; expected purchases under our NCIB (as defined herein); the sufficiency of capital to meet working capital, capital expenditure, debt repayment requirements and our anticipated growth strategy; our ability to raise capital; our adoption of certain accounting standards; and other matters related to the foregoing. When used in this document, the words &#x201C;believe,&#x201D; &#x201C;plan,&#x201D; &#x201C;expect,&#x201D; &#x201C;anticipate,&#x201D; &#x201C;intend,&#x201D; &#x201C;continue,&#x201D; &#x201C;may,&#x201D; &#x201C;will,&#x201D; &#x201C;should&#x201D; or the negative of such terms and similar expressions are intended to identify forward-looking statements. These forward-looking statements are subject to risks and uncertainties and are based on assumptions that may cause future results to differ materially from those expected. The material assumptions made in making these forward-looking statements include the following: Descartes' ability to successfully identify and execute on acquisitions and to integrate acquired businesses and assets, and to predict expenses associated with and revenues from acquisitions; </span><span style="font-family:'Verdana';">the impact of network failures, information security breaches or other cyber-security threats; </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">4</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">disruptions in the movement of freight and a decline in shipment volumes including as a result of the Ukraine Conflict or the Pandemic or other contagious illness outbreaks, a deterioration of general economic conditions or instability in the financial markets accompanied by a decrease in spending by our customers; </span><span style="font-family:'Verdana';">global shipment volumes continuing to increase at levels consistent with the average growth rates of the global economy; countries continuing to implement and enforce existing and additional customs and security regulations relating to the provision of electronic information for imports and exports; countries continuing to implement and enforce existing and additional trade restrictions and sanctioned party lists with respect to doing business with certain countries, organizations, entities and individuals; our continued operation of a secure and reliable business network; the continued availability of the data and content that is utilized in the delivery of services made available over our network; relative stability of currency exchange rates and interest rates; equity and debt markets continuing to provide us with access to capital; the availability and suitability of using cash to fund share buybacks under our NCIB; our ability to develop solutions that keep pace with the continuing changes in technology, and our continued compliance with third party intellectual property rights. While management believes these assumptions to be reasonable under the circumstances, they may prove to be inaccurate. Such forward-looking statements also involve known and unknown risks, uncertainties and other factors that may cause our actual results, performance or achievements of, or developments in our business or industry, to differ materially from the anticipated results, performance or achievements or developments expressed or implied by such forward-looking statements.&#xA0;Such factors include, but are not limited to, the factors discussed under the heading &#x201C;</span><b style="font-family:'Verdana';font-weight:bold;">Certain Factors That May Affect Future Results</b><span style="font-family:'Verdana';">&#x201D; in this MD&amp;A and in other documents filed with the Securities and Exchange Commission, the Ontario Securities Commission and other securities commissions across Canada from time to time. If any of such risks actually occur, they could materially adversely affect our business, financial condition or results of operations. In that case, the trading price of our common shares could decline, perhaps materially. Readers are cautioned not to place undue reliance upon any such forward-looking statements, which speak only as of the date made. Forward-looking statements are provided for the purpose of providing information about management&#x2019;s current expectations and plans relating to the future. Readers are cautioned that such information may not be appropriate for other purposes. Except as required by applicable law, we do not undertake or accept any obligation or undertaking to release publicly any updates or revisions to any forward-looking statements to reflect any change in our expectations or any change in events, conditions, assumptions or circumstances on which any such statements are based.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">5</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 8pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#x200B;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;margin:0pt 0pt 8pt 0pt;"><span style="font-family:'Verdana';font-size:0pt;visibility:hidden;">&#x200B;</span></p><div style="position:relative;white-space:nowrap;"><div style="display:inline-block;padding-right:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><a id="_bfe9e194_9711_4fac_be41_3e238a399cc7"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;border-bottom:1px solid #000000;margin:0pt 0pt 10pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p><a id="OVERVIEW_153434"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">OVERVIEW</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-top:1pt;border-top:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We use technology and networks to simplify complex business processes. We are primarily focused on logistics and supply chain management business processes. Our solutions are predominantly cloud-based and are focused on improving the productivity, performance and security of logistics-intensive businesses. Customers use our modular, software-as-a-service (&#x201C;SaaS&#x201D;) and data solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access and analyze global trade data; research and perform trade tariff and duty calculations; file customs and security documents for imports and exports; and complete numerous other logistics processes by participating in a large, collaborative multi-modal logistics community. Our pricing model provides our customers with flexibility in purchasing our solutions either on a subscription, transactional or perpetual license basis. Our primary focus is on serving transportation providers (air, ocean and truck modes), logistics service providers (including third-party logistics providers, freight forwarders and customs brokers) and distribution-intensive companies for which logistics is either a key or a defining part of their own product or service offering, or for which our solutions can provide an opportunity to reduce costs, improve service levels, or support growth by optimizing the use of assets and information.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The Pandemic continues to have an impact on global trade. Since the start of the Pandemic in March 2020, we have observed </span><span style="font-family:'Verdana';">some reduced shipment volumes across various modes of transportation and are aware of some customers who have reduced or temporarily suspended operations or are otherwise experiencing financial hardship. However, at the same time we have seen several other areas of our business where shipment and order volumes have remained stable or, in some cases, have seen increased volumes as a result of the Pandemic. We don&#x2019;t know what the impact of these events will be on overall global trade volumes and the use of Descartes&#x2019; products and services by its customers and whether an impact will only be temporary or may continue for </span></p></div><div style="display:inline-block;padding-left:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">an extended period of time. It is also not clear at this time whether, as a result of the Pandemic and related events, companies and/or consumers will alter trading, manufacturing and/or buying patterns over the longer-term from the patterns we have observed in the global economy in the past.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Logistics is the management of the flow of resources between a point of origin and a point of destination &#x2013; processes that move items (such as goods, people, information) from point A to point B. Supply chain management is broader than logistics and includes the sourcing, procurement, conversion and storage of resources for consumption by an enterprise. Logistics and supply chain management have been evolving over the past several years as companies are increasingly seeking automation and real-time control of their supply chain activities. We believe companies are looking for integrated solutions for managing inventory in transit, conveyance units, people, data and business documents.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We believe logistics-intensive organizations are seeking to reduce operating costs, differentiate themselves, improve margins, and better serve customers. Global trade and transportation processes are often manual and complex to manage. This is a consequence of the growing number of business partners participating in companies&#x2019; global supply chains and a lack of standardized business processes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Additionally, global sourcing, logistics outsourcing, imposition of additional customs and regulatory requirements and the increased rate of change in day-to-day business requirements are adding to the overall complexities that companies face in planning and executing in their supply chains. Whether a shipment is delayed at the border, a customer changes an order or a breakdown occurs on the road, there are increasingly more issues that can significantly impact the execution of fulfillment schedules and associated costs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The rise of ecommerce has heightened these challenges for many suppliers with end-customers increasingly demanding narrower order-to-fulfillment periods, lower prices and greater flexibility in scheduling and rescheduling deliveries. End customers also want real-time </span></p></div></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">6</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><div style="position:relative;white-space:nowrap;"><div style="display:inline-block;padding-right:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">updates on delivery status, adding considerable burden to supply chain management as process efficiency is balanced with affordable service.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In this market, the movement and sharing of data between parties involved in the logistics process is equally important to the physical movement of goods. Manual, fragmented and distributed logistics solutions are often proving inadequate to address the needs of operators. Connecting manufacturers and suppliers to carriers on an individual, one-off basis is too costly, complex and risky for organizations dealing with many trading partners. Further, many of these solutions do not provide the flexibility required to efficiently accommodate varied processes for organizations to remain competitive. We believe this presents an opportunity for logistics technology providers to unite this highly fragmented community and help customers improve efficiencies in their operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As the market continues to change, we have been evolving to meet our customers&#x2019; needs. While the rate of adoption of newer logistics and supply chain management technologies is increasing, a large number of organizations still have manual business processes. We have been educating our prospects and customers on the value of connecting to trading partners through our Global Logistics Network (&#x201C;GLN&#x201D;) and automating, as well as standardizing, multi-party business processes. We believe that our target customers are increasingly looking for a single source, neutral, network-based solution provider who can help them manage the end-to-end shipment &#x2013; from researching global trade information, to the booking of a shipment, to the tracking of that shipment as it moves, to the regulatory compliance filings to be made during the move and, finally, to the settlement and audit of the invoice.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Additionally, regulatory initiatives mandating electronic filing of shipment information with customs authorities require companies to automate aspects of their shipping processes to remain compliant and competitive. Our customs compliance technology helps shippers, transportation providers, freight forwarders and other logistics intermediaries to securely and electronically file shipment and tariff/duty information with customs authorities and self-audit their own efforts. Our technology also helps carriers and freight forwarders efficiently </span></p></div><div style="display:inline-block;padding-left:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">coordinate with customs brokers and agencies to expedite cross-border shipments. While many compliance initiatives started in the US, compliance has now become a global issue with significantly more international shipments crossing several borders on the way to their final destinations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Increasingly, data and content have become central to supply chain planning and execution. Complex international supply chains are affected by logistics service provider performance, capacity, and productivity, as well as regulatory frameworks such as free trade agreements. We believe our Global Trade Data, Trade Regulations, Free-Trade-Agreement, and duty rate and calculation solutions help give our customers the intelligence they need to improve their sourcing, landed cost, and transportation lane and provider selection processes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Solutions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Descartes&#x2019; Logistics Technology Platform unites a growing global community of logistics-focused parties, allowing them to transact business while leveraging a broad array of applications designed to help logistics-intensive businesses thrive.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The Logistics Technology Platform fuses our GLN, an extensive logistics network covering multiple transportation modes, with a broad array of modular, interoperable web and wireless logistics management solutions. Designed to help accelerate time-to-value and increase productivity and performance for businesses of all sizes, the Logistics Technology Platform leverages the GLN&#x2019;s multimodal logistics community to enable companies to quickly and cost-effectively connect and collaborate.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Descartes&#x2019; GLN, the underlying foundation of the Logistics Technology Platform, manages the flow of data and documents that track and control inventory, assets and people in motion. Designed expressly for logistics operations, it is native to the particularities of different transportation modes and country borders. As a state-of-the-art messaging network with wireless capabilities, the GLN helps manage business processes in real-time and in-motion. Its capabilities go beyond logistics, supporting common commercial transactions, regulatory compliance documents, and customer specific needs.</span></p></div></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">7</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><div style="position:relative;white-space:nowrap;"><div style="display:inline-block;padding-right:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The GLN extends its reach using interconnect agreements with other general and logistics-specific networks, to offer companies access to a wide array of trading partners. With the flexibility to connect and collaborate in unique ways, companies can effectively route or transform data to and from partners and deploy additional Descartes solutions on the GLN. The GLN allows &#x201C;low tech&#x201D; partners to act and respond with &#x201C;high tech&#x201D; capabilities and connect to the transient partners that exist in many logistics operations. This inherent adaptability creates opportunities to develop logistics business processes that can help customers differentiate themselves from their competitors.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Descartes&#x2019; Logistics Application Suite offers a wide array of modular, cloud-based, interoperable web and wireless logistics management applications. These solutions embody Descartes&#x2019; deep domain expertise, not merely &#x201C;check box&#x201D; functionality. These solutions deliver value for a broad range of logistics-intensive organizations, whether they purchase transportation, run their own fleet, operate globally or locally, or work across air, ocean or ground transportation. Descartes&#x2019; comprehensive suite of solutions includes:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Routing, Mobile and Telematics;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Transportation Management</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Ecommerce, Shipping &amp; Fulfillment; and Ecommerce Enablement;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Customs &amp; Regulatory Compliance;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Global Trade Intelligence;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">B2B Messaging &amp; Connectivity; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Broker &amp; Forwarder Enterprise Systems.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The Descartes applications forming part of the Logistics Technology Platform are modular and interoperable to allow organizations the flexibility to deploy them quickly within an existing portfolio of solutions. Implementation is streamlined because these solutions use web-native or wireless user interfaces and are pre-integrated with the GLN. With interoperable and multi-party solutions, Descartes&#x2019; solutions are designed to deliver functionality that can enhance a logistics operation&#x2019;s performance and productivity both within the organization and across a complex network of partners.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Descartes&#x2019; expanding global trade intelligence offering unites systems and people with trade information to enable organizations to work </span></p></div><div style="display:inline-block;padding-left:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">smarter by making more informed supply chain and logistics decisions. Our global trade intelligence solutions can help customers: research and analyze global trade movements, regulations and trends; reduce the risk of transacting with denied parties; increase trade compliance rates; optimize sourcing, procurement, and business development strategies; and minimize duty spend.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Descartes&#x2019; GLN community members enjoy extended command of operations and accelerated time-to-value relative to many alternative logistics solutions. Given the inter-enterprise nature of logistics, quickly gaining access to partners is paramount. For this reason, Descartes has focused on growing a community that strategically attracts and retains relevant logistics parties. Upon joining the GLN community, many companies find that a number of their trading partners are already members with an existing connection to the GLN. This helps to minimize the time required to integrate Descartes&#x2019; logistics management applications and to begin realizing results. Descartes is committed to continuing to expand community membership. Companies that join the GLN community or extend their participation find a single place where their entire logistics network can exist regardless of the range of transportation modes, the number of trading partners or the variety of regulatory agencies.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Sales and Distribution</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Our sales efforts are primarily directed towards two specific customer markets: (a) transportation companies and logistics service providers; and (b) manufacturers, retailers, distributors and mobile business service providers. Our sales staff is regionally based and trained to sell across our solutions to specific customer markets. In North America and Europe, we promote our products primarily through direct sales efforts aimed at existing and potential users of our products. In the Asia Pacific, Indian subcontinent, South America and African regions, we focus on making our channel partners successful. Channel partners for our other international operations include distributors, alliance partners and value-added resellers. During the ongoing period of the Pandemic we have been encouraged by the success of our sales organization to date in being able to continue to execute on sales efforts and prospecting through the use of online communication platforms and virtual meetings in </span></p></div></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">8</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><div style="position:relative;white-space:nowrap;"><div style="display:inline-block;padding-right:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">place of face-to-face meetings and in person trade show events.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">United by Design</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Descartes&#x2019; &#x2018;United By Design&#x2019; strategic alliance program is intended to ensure complementary hardware, software and network offerings are interoperable with Descartes&#x2019; solutions and work together seamlessly to solve multi-party business problems.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">&#x2018;United By Design&#x2019; is intended to create a global ecosystem of logistics-intensive organizations working together to standardize and automate business processes and manage resources in motion. The program centers on Descartes&#x2019; Open Standard Collaborative Interfaces, which provide a wide variety of connectivity mechanisms to integrate a broad spectrum of applications and services.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Descartes has partnering relationships with multiple parties across the following three categories:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Technology Partners &#x2013; Complementary hardware, software, network, and embedded technology providers that extend the functional breadth of Descartes&#x2019; solution capabilities;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Consulting Partners - Large system integrators and enterprise resource planning system vendors through to vertically specialized or niche consulting organizations that provide domain expertise and/or implementation services for Descartes&#x2019; solutions; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Channel Partners (Value-Added Resellers) &#x2013; Organizations that market, sell, implement and support Descartes' solutions to extend access and expand market share into territories and markets where Descartes might not have a focused direct sales presence.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Marketing</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our marketing efforts are focused on growing demand for our solutions and establishing Descartes as a thought leader and innovator across the markets we serve. Marketing programs are delivered through integrated initiatives designed to reach our target customer and prospect groups. These programs include digital and online marketing, partner-focused campaigns, </span></p></div><div style="display:inline-block;padding-left:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">proactive media relations, and direct corporate marketing efforts. These efforts have also historically included trade shows and in-person user group events, but those activities have been suspended during the Pandemic. It is anticipated that some level of in-person events will return to our marketing programs following the Pandemic, but it is uncertain at this point in time to determine to what extent.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Fiscal 2023 Highlights</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On February 9, 2022, Descartes acquired all of the shares of NetCHB, LLC (&#x201C;NetCHB&#x201D;), a provider of customs filing solutions in the US. The purchase price for the acquisition was approximately $38.7 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $60.0 million based on NetCHB achieving revenue-based targets over the first two years post-acquisition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On April 21, 2022, Descartes acquired substantially all of the assets of Foxtrot, Inc. (&#x201C;Foxtrot&#x201D;), a provider of machine learning-based mobile route execution solutions. The purchase price for the acquisition was approximately $4.2 million, net of cash acquired, which was funded from cash on hand.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On June 3, 2022, Descartes acquired all of the shares of XPS Technologies, LLC (&#x201C;XPS&#x201D;), a provider of ecommerce multi-carrier parcel shipping solutions. The purchase price for the acquisition was approximately $61.1 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $75.0 million based on XPS achieving revenue-based targets over the first two years post-acquisition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">On June 7, 2022, Descartes announced a normal course issuer bid (&#x201C;NCIB&#x201D;), commencing June 10, 2022, to purchase up to approximately 7.4 million common shares in the open market for cancellation. Under the NCIB, Descartes is permitted to repurchase for cancellation, at its discretion on or before June 9, 2023, up to 10% of the &#x201C;public float&#x201D; (calculated in accordance with the rules of the TSX) of Descartes&#x2019; issued and outstanding common shares. Any purchases under the NCIB will be subject to the terms and limitations applicable to such NCIB, and will be made through the facilities of the TSX, Nasdaq, other designated exchanges and/or alternative </span></p></div></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">9</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><div style="position:relative;white-space:nowrap;"><div style="display:inline-block;padding-right:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Canadian trading systems, or by such other means as may be permitted by the Ontario Securities Commission or other applicable Canadian Securities Administrators. No common shares have yet been purchased pursuant to the NCIB.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">On July 15, 2022, we filed a final short-form base shelf prospectus (the &#x201C;2022 Base Shelf Prospectus&#x201D;), allowing us to offer and issue an unlimited quantity of the following securities during the 25-month period following thereafter: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; </span></p></div><div style="display:inline-block;padding-left:3.33%;vertical-align:top;white-space:normal;width:46.67%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">(iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. No securities have yet been sold pursuant to the 2022 Base Shelf Prospectus.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#x200B;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:0pt;visibility:hidden;">&#x200B;</span></p></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">10</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;min-height:12.15pt;"><a id="_0259c28c_89ec_426e_b60d_f3890cae0573"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="CONSOLIDATEDOPERATIONS_544865"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONSOLIDATED OPERATIONS</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows, for the periods indicated, our results of operations in millions of dollars (except per share and weighted average share amounts):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.44%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Second&#xA0;Quarter&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.44%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">First&#xA0;Half&#xA0;of</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 123.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 104.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 239.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 203.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cost of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 28.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 25.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 56.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 49.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Gross margin</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 94.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 79.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 182.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 154.1</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Operating expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 45.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 37.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 86.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 74.9</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Other charges</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 1.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 2.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.9</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Amortization of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 16.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 14.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 31.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 28.8</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Income from operations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 31.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 26.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 62.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 49.5</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Investment income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.1</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Interest expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (0.3)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (0.3)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (0.6)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (0.5)</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Income before income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 31.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 25.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 62.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 49.1</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Income tax expense (recovery)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 7.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 4.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 12.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 6.9</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 1.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (2.0)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 3.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.6</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 22.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 23.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 46.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 41.6</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">EARNINGS PER SHARE</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">BASIC</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.27</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.27</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.54</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.49</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">DILUTED</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.27</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.27</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.53</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.48</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">BASIC</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 84,783</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 84,566</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 84,774</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 84,534</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">DILUTED</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 86,338</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 86,128</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 86,344</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 86,066</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total revenues </b><span style="font-family:'Verdana';">consist of </span><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">license revenues, services revenues </span><span style="font-family:'Verdana';">and </span><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">professional services and other revenues</span><span style="font-family:'Verdana';">. License revenues are derived from perpetual licenses granted to our customers to use our software products. Services revenues are comprised of ongoing transactional and/or subscription fees for use of our services and products by our customers and maintenance, which include revenues associated with maintenance and support of our services and products. Professional services and other revenues are comprised of professional services revenues from consulting, implementation and training services related to our services and products, hardware revenues and other revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our total revenues were $239.4 million and $203.4 million for the first half of 2023 and 2022, respectively. The increase in revenues in the first half of 2023 compared to the same period of 2022 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $18.7 million in revenue in the first half of 2023. While we saw growth across many lines of our business, services revenue growth in the first half of 2023 was driven by sales of our global trade intelligence solutions. The principal contributors to the balance of the increase in revenues in the first half of 2023 compared to the same period of 2022 was a partial period of contribution from the acquisitions completed in 2023 (NetCHB, Foxtrot and XPS, collectively, the &#x201C;2023 Acquisitions&#x201D;) as well as a full period of contribution from the acquisitions completed in 2022 (VitaDex Solutions, LLC, doing business as QuestaWeb (&#x201C;QuestaWeb&#x201D;), Portrix Logistics Software GmbH (&#x201C;Portrix&#x201D;), and GreenMile, LLC (&#x201C;GreenMile&#x201D;), collectively, the &#x201C;2022 Acquisitions&#x201D;).</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">For the second quarter of 2023 and 2022, our total revenues were $123.0 million and $104.6 million, respectively. The increase in revenues in the second quarter of 2023 compared to the same period of 2022 </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">11</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">was primarily due to growth in services revenues from new and existing customers which contributed an incremental $9.4 million in revenue in the second quarter of 2023. While we saw growth across many lines of our business, services revenue growth in the second quarter of 2023 was driven by sales of our global trade intelligence solutions. The principal contributor to the balance of the increase in revenues in the second quarter of 2023 compared to the same period of 2022 was a partial period of contribution from the 2023 Acquisitions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table provides additional analysis of our revenues by type (in millions of dollars and as a percentage of total revenues) generated over each of the periods indicated:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.04%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Second&#xA0;Quarter&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.04%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">First&#xA0;Half&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">License</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 3.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 1.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 5.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 2.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 1</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 1</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Services</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 109.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 93.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 212.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 181.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 89</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 89</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 89</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 89</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Professional services and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 10.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 9.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 21.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 19.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 10</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 10</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 123.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 104.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 239.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 203.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our </span><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">license revenues</span><span style="font-family:'Verdana';"> were $5.6 million and $2.5 million for the first half of 2023 and 2022, respectively, representing 2% and 1% of total revenues in the first half of 2023 and 2022, respectively. For the second quarter of 2023 and 2022, our license revenues were $3.3 million and $1.2 million, respectively, representing 3% and 1% of total revenues in the second quarter of 2023 and 2022, respectively. While our sales focus has been on generating services revenues in our SaaS business model, we continue to see a market for licensing the products in our omni-channel retailing and home delivery logistics solutions. The amount of license revenues in a period is dependent on our customers&#x2019; preference to license our solutions instead of purchasing our solutions as a service and we anticipate variances from period to period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our </span><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">services revenues</span><span style="font-family:'Verdana';"> were $212.2 million and $181.8 million for the first half of 2023 and 2022, respectively, representing 89% of total revenues in both the first half of 2023 and 2022. The increase in revenues in the first half of 2023 compared to the same period of 2022 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $18.7 million in revenue in the first half of 2023. The growth in service revenues in the first half of 2023 was driven by sales of our global trade intelligence solutions. The principal contributors to the balance of the increase in revenues in the first half of 2023 compared to the same period of 2022 was a partial period of contribution from the 2023 Acquisitions as well as a full period of contribution from the 2022 Acquisitions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the second quarter of 2023 and 2022, our services revenues were $109.4 million and $93.5 million, respectively, representing 89% of total revenues in both the second quarter of 2023 and 2022. The increase in revenues in the second quarter of 2023 compared to the same period of 2022 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $9.4 million in revenue in the second quarter of 2023. The principal contributor to the balance of the increase in revenues in the second quarter of 2023 compared to the same period of 2022 was a partial period of contribution from the 2023 Acquisitions.</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">12</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our </span><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">professional services and other revenues</span><span style="font-family:'Verdana';"> were $21.6 million and $19.1 million for the first half of 2023 and 2022, respectively, representing 9% and 10% of total revenues for the first half of 2023 and 2022, respectively. The increase in revenues in the first half of 2023 compared to the same period of 2022 was primarily due the inclusion of a full period of revenues from the 2022 Acquisitions, which contributed an incremental $1.2 million. The principal contributor to the balance of the increase in professional services and other revenues in the first half of 2023 compared to the same period of 2022 was growth in revenue from new and existing customers, which contributed an incremental $1.1 million.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the second quarter of 2023 and 2022, our professional services and other revenues were $10.3 million and $9.9 million, respectively, representing 8% and 10% of our total revenues in the second quarter of 2023 and 2022, respectively. The increase in revenues in the second quarter of 2023 compared to the same period of 2022 was primarily due the inclusion of a full period of revenues from the 2022 Acquisitions, which contributed an incremental $0.3 million.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We operate in one business segment providing logistics technology solutions. The following table provides additional analysis of our revenues by geographic location of customers (in millions of dollars and as a percentage of total revenues):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.04%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Second&#xA0;Quarter&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.04%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">First&#xA0;Half&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 78.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 59.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 147.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 114.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 64</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 57</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 62</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 56</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa (&#x201C;EMEA&#x201D;)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 30.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 31.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 65.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 63.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 25</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 30</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 27</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 31</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 9.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 9.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 17.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 17.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 9</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 9</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 4.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 4.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 8.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 8.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 4</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 4</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 123.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 104.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 239.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 203.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Revenues from the United States</span><span style="font-family:'Verdana';"> were $147.6 million and $114.3 million for the first half of 2023 and 2022, respectively. For the second quarter of 2023 and 2022, revenues from the United States were $78.6 million and $59.1 million, respectively. The increase in the first half and second quarter of 2023 as compared to the same periods of 2022 was primarily a result of growth in services revenues from new and existing customers which contributed an incremental $15.3 and $9.2 million in revenue, respectively. The growth in the first half and second quarter of 2023 was driven by sales of our global trade intelligence solutions. The principal contributor to the balance of the increase in revenues in the first half and second quarter of 2023 as compared to the same periods of 2022 was the inclusion of a partial period of revenues from the 2023 Acquisitions.</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">13</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Revenues from the EMEA region</span><span style="font-family:'Verdana';"> were $65.4 million and $63.0 million for the first half of 2023 and 2022, respectively. For the second quarter of 2023 and 2022, revenues from the EMEA region, were $30.7 million and $31.9 million, respectively. The increase in the first half of 2023 compared to the same period of 2022 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $1.5 million in revenue partially offset by a negative impact from foreign exchange rates. The decrease in the second quarter of 2023 compared to the same period of 2022 was a result of the weakening of the British pound sterling and euro compared to the US dollar.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Revenues from Canada</span><span style="font-family:'Verdana';"> were $17.5 million and $17.6 million for the first half of 2023 and 2022, respectively. For the second quarter of 2023 and 2022, revenues from Canada were $9.2 million. The decrease in the first half of 2023 compared to the same period of 2022 was a result of the weakening of the Canadian dollar compared to the US dollar.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Revenues from the Asia Pacific region</span><span style="font-family:'Verdana';"> were $8.9 million and $8.5 million for the first half of 2023 and 2022, respectively. For the second quarter of 2023 and 2022, revenues from the Asia Pacific region were $4.5 million and $4.4 million, respectively. The increase in the first half and second quarter of 2023 compared to the same period of 2022 was primarily a result of growth in services revenues from new and existing customers which contributed an incremental $0.5 million and $0.3 million, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table provides analysis of cost of revenues (in millions of dollars) and the related gross margins for the periods indicated:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.04%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Second&#xA0;Quarter&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.04%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">First&#xA0;Half&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">License</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">License revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 3.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 1.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 5.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 2.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost of license revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Gross margin</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 3.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 2.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Gross margin percentage</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 91</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 75</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 89</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 80</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Services</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Services revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 109.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 93.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 212.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 181.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost of services revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 22.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 19.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 43.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 37.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Gross margin</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 86.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 73.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 168.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 144.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Gross margin percentage</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 79</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 79</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 79</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 79</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Professional services and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Professional services and other revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 10.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 9.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 21.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 19.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost of professional services and other revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 6.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 5.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 12.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 11.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Gross margin</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 4.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 4.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 9.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 8.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Gross margin percentage</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 41</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 43</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 44</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 42</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Total</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 123.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 104.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 239.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 203.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 28.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 25.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 56.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 49.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Gross margin</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 94.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 79.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 182.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 154.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Gross margin percentage</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 77</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 76</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 76</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 76</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">14</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cost of license revenues</span><span style="font-family:'Verdana';"> consists of costs related to our sale of third-party technology, such as third-party map license fees and royalties.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Gross margin percentage for license revenues</span><span style="font-family:'Verdana';"> was 89% and 80% for the first half of 2023 and 2022, respectively, and 91% and 75% for the second quarter of 2023 and 2022, respectively. Our gross margin on license revenues is dependent on the proportion of our license revenues that involve third-party technology. Consequently, our gross margin percentage for license revenues is higher when a lower proportion of our license revenues attracts third-party technology costs, and vice versa.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cost of services revenues</span><span style="font-family:'Verdana';"> consists of internal costs of running our systems and applications and other personnel-related expenses incurred in providing maintenance, including customer support.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Gross margin percentage for services revenues </span><span style="font-family:'Verdana';">was 79% for both the first half of 2023 and 2022, and 79% for both the second quarter of 2023 and 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cost of professional services and other revenues</span><span style="font-family:'Verdana';"> consists of personnel-related expenses incurred in providing professional services, hardware installation as well as hardware costs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Gross margin percentage for professional services and other revenues </span><span style="font-family:'Verdana';">was 44% and 42% for the first half of 2023 and 2022, respectively, and 41% and 43% for the second quarter of 2023 and 2022, respectively. Hardware and other revenues typically have lower margins than our professional services revenues and as such variances in gross margin can occur from period to period as a result of the sales mix. Overall, the margin in the first half of 2023 was positively impacted by an increased proportion of professional services revenues compared to hardware and other revenues. Conversely, the margin in the second quarter of 2023 was negatively impacted by an increased proportion of hardware revenues compared to professional services and other revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Operating expenses</span><span style="font-family:'Verdana';">, consisting of sales and marketing, research and development and general and administrative expenses, were $86.6 million and $74.9 million for the first half of 2023 and 2022, respectively. Operating expenses were higher in the first half of 2023 compared to the same period of 2022 primarily due to a full period of costs from the 2022 Acquisitions, which added approximately $3.6 million. Operating expenses were also higher in the first half of 2023 compared to the same period of 2022 due to increased headcount-related costs and a partial period of costs from the 2023 Acquisitions, which added approximately $3.2 million and $3.0 million to operating expenses, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the second quarter of 2023 and 2022, operating expenses were $45.2 million and $37.7 million, respectively. Operating expenses were higher in the second quarter of 2023 compared to the same period of 2022 primarily due to a partial period of costs from the 2023 Acquisitions, which added approximately $2.4 million. Operating expenses were also higher in the second quarter of 2023 compared to the same period of 2022 due increased headcount-related costs and a full period of costs from the 2022 Acquisitions, which added approximately $1.6 million and $1.4 million to operating expenses, respectively.</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">15</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table provides analysis of operating expenses (in millions of dollars and as a percentage of total revenues) for the periods indicated:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.04%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Second&#xA0;Quarter&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.04%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">First&#xA0;Half&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 123.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 104.6</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 239.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 203.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Sales and marketing expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 14.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 11.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 27.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 22.3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 12</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 11</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 12</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 11</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Research and development expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 18.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 15.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 34.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 30.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 15</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 15</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 14</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 15</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">General and administrative expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 12.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 10.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 24.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 21.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 10</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 11</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total operating expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 45.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 37.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 86.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 74.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Percentage of total revenues</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 37</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 36</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%&#xA0;&#xA0;</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;white-space:pre-wrap;"> 36</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">%&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><i style="font-family:'Verdana';font-style:italic;white-space:pre-wrap;"> 37</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">%</i></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Sales and marketing expenses</span><span style="font-family:'Verdana';"> consist primarily of salaries, commissions, stock-based compensation and other personnel-related costs, bad debt expenses, travel expenses, advertising programs and services, and other promotional activities associated with selling and marketing our services and products. Sales and marketing expenses were $27.6 million and $22.3 million for the first half of 2023 and 2022, respectively, representing 12% and 11% of total revenues in the first half of 2023 and 2022, respectively. For the second quarter of 2023 and 2022, sales and marketing expenses were $14.3 million and $11.3 million, respectively, representing 12% and 11% of total revenues in the second quarter of 2023 and 2022, respectively. The increase in sales and marketing expenses in the first half and second quarter of 2023 compared to the same periods of 2022 was primarily due to increased headcount-related costs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Research and development expenses</span><span style="font-family:'Verdana';"> consist primarily of salaries, stock-based compensation and other personnel-related costs of technical and engineering personnel associated with our research and product development activities, as well as costs for third-party outsourced development providers. We expensed all costs related to research and development in the first half of 2023 and 2022. Research and development expenses were $34.7 million and $30.7 million for the first half of 2023 and 2022, respectively, representing 14% and 15% of total revenues in the first half of 2023 and 2022, respectively. For the second quarter of 2023 and 2022, research and development expenses were $18.2 million and $15.5 million, respectively, representing 15% of total revenues in both the second quarter of 2023 and 2022. The increase in research and development expenses in the first half and second quarter of 2023 compared to the same periods of 2022 was primarily due to increased headcount-related costs.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">General and administrative expenses</span><span style="font-family:'Verdana';"> consist primarily of salaries, stock-based compensation and other personnel-related costs of administrative personnel, as well as professional fees and other administrative expenses. General and administrative costs were $24.3 million and $21.9 million for the first half of 2023 and 2022, respectively, representing 10% and 11% of total revenues in the first half of 2023 and 2022. General and administrative expenses were $12.7 million and $10.9 million for the second quarter of 2023 and 2022, respectively, representing 10% of total revenues in both the second quarter of 2023 and 2022. The increase in general and administrative expenses in the first half and second quarter of 2023 compared to the same periods of 2022 was primarily due to increased computer software as well as increased stock-based compensation from fiscal 2022 and fiscal 2023 grants.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Other charges </span><span style="font-family:'Verdana';">consist primarily of acquisition-related costs with respect to completed and prospective acquisitions, contingent consideration adjustments and restructuring charges. Acquisition-related costs primarily include advisory services, brokerage services, administrative costs and retention bonuses, and relate to completed and prospective acquisitions. Restructuring costs relate to the integration of previously </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">16</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">completed acquisitions and other cost-reduction activities. Other charges were $2.8 million and $0.9 million for the first half of 2023 and 2022, respectively, and $1.3 million and $0.4 million for the second quarter of 2023 and 2022, respectively. The increase in other charges in the first half and second quarter of 2023 compared to the same periods of 2022 was primarily a result of contingent considerations adjustments in the first half of 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Amortization of intangible assets</span><span style="font-family:'Verdana';"> is amortization of the value attributable to intangible assets, including customer agreements and relationships, non-compete covenants, existing technologies and trade names, in each case associated with acquisitions completed by us as of the end of each reporting period. Intangible assets with a finite life are amortized to income over their useful life. The amount of amortization expense in a fiscal period is dependent on our acquisition activities. Amortization of intangible assets was $31.2 million and $28.8 million in the first half of 2023 and 2022, respectively, and $16.1 million and $14.9 million in the second quarter of 2023 and 2022. Amortization expense increased in the first half and second quarter of 2023 compared to the same periods of 2022 primarily due to the 2023 Acquisitions, which resulted in an incremental $2.4 million and $1.6 million of amortization expense, respectively. As at July 31, 2022, the unamortized portion of all intangible assets amounted to $252.6 million.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We test the carrying value of our finite life intangible assets for recoverability when events or changes in circumstances indicate that there may be evidence of impairment. We write down intangible assets or asset groups with a finite life to fair value when the related undiscounted cash flows are not expected to allow for recovery of the carrying value. Fair value of intangible assets or asset groups is determined by discounting the expected related cash flows. No finite life intangible asset or asset group impairment has been identified or recorded for any of the fiscal periods reported.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Investment income</span><span style="font-family:'Verdana';"> was $0.6 million and $0.1 million for the first half of 2023 and 2022 and $0.5 million and $0.1 million in the second quarter of 2023 and 2022. Investment income is generally earned on excess cash balances.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Interest expense</span><span style="font-family:'Verdana';"> was $0.6 million and $0.5 million for the first half of 2023 and 2022, respectively, and $0.3 million in both the second quarter of 2023 and 2022. Interest expense is primarily comprised of interest expense on the amount borrowed and outstanding on our revolving debt facility, debt standby charges as well as the amortization of deferred financing charges.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Income tax expense </span><span style="font-family:'Verdana';">is comprised of current and deferred income tax expense. Income tax expense for the first half of 2023 and 2022 was 26.0% and 15.3% of income before income taxes, or $16.2 million and $7.5 million, respectively. Income tax expense for the second quarter of 2023 and 2022 was 27.8% and 10.5% of income before income taxes, or $8.8 million and $2.7 million, respectively.&#xA0;The income tax rate as a percentage of income before income taxes increased in the first half and second quarter of 2023 compared to the same periods of 2022 primarily as a result of a change in tax rate and release in valuation allowances on tax losses carried forward during the comparative period.</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">17</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;min-height:12.15pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Income tax expense &#x2013; current</span><span style="font-family:'Verdana';"> was an expense of $12.3 million and $6.9 million for the first half of 2023 and 2022, respectively, and an expense of $7.5 million and $4.7 million in the second quarter of 2023 and 2022, respectively. Current income tax expense increased in the first half and second quarter of 2023 compared to the same periods of 2022 primarily due to the impact of the loss restriction rules in the UK and lower tax attributes available in Canada to deduct against income, in the first half of 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Income tax expense (recovery) &#x2013; deferred</span><span style="font-family:'Verdana';"> was $3.8 million and $0.6 million in the first half of 2023 and 2022, respectively, and an expense of $1.3 million and a recovery of ($2.0) million in the second quarter of 2023 and 2022, respectively. Deferred income tax expense increased in the first half and second quarter of 2023 compared to the same periods of 2022 primarily due to a release in valuation allowances on tax losses carried forward in the comparative period partially offset against a recovery of certain deferred tax attributes in the US recorded in the first half of 2023, as well as normal course changes in timing differences in Canada.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Net income</span><span style="font-family:'Verdana';"> was $46.0 million and $41.6 million for the first half of 2023 and 2022, respectively and $22.9 million and $23.2 million in the second quarter of 2023 and 2022, respectively. Net income in the first half of 2023 compared to the same periods of 2022 was positively impacted by the growth in services revenues as well the 2023 Acquisitions. Net income in the second quarter of 2023 compared to the same period of 2022 decreased primarily as a result of an increase in income tax expense.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#x200B;</span></p><a id="_89d745ba_4108_4ac1_a8f9_d7bff7d49491"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="QUARTERLYOPERATINGRESULTS_456981"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">QUARTERLY OPERATING RESULTS</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table provides an analysis of our unaudited operating results (in thousands of dollars, except per share and weighted average number of share amounts) for each of the quarters indicated:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:13.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:13.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.12%;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fiscal</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="7" style="vertical-align:bottom;white-space:nowrap;width:41.79%;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fiscal</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-left:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:20.47%;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fiscal</b></p></td></tr><tr><td style="vertical-align:bottom;width:13.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.12%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-left:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="7" style="vertical-align:bottom;white-space:nowrap;width:41.79%;border-bottom:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-left:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:20.47%;border-bottom:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:13.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Third</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fourth</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">First</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Second</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Third</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fourth</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">First</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Second</b></p></td></tr><tr><td style="vertical-align:bottom;width:13.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Quarter</b></p></td></tr><tr><td style="vertical-align:bottom;width:13.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 87,508</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 93,408</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 98,838</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 104,570</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 108,911</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 112,371</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 116,395</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 123,011</span></p></td></tr><tr><td style="vertical-align:bottom;width:13.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Gross margin</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 64,962</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 70,308</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 74,989</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 79,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 83,304</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 85,487</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 88,572</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 94,092</span></p></td></tr><tr><td style="vertical-align:bottom;width:13.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Operating expenses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 31,695</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 34,957</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 37,236</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 37,656</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 39,374</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 39,653</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 41,447</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 45,170</span></p></td></tr><tr><td style="vertical-align:bottom;width:13.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 13,308</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 17,203</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 18,421</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 23,176</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 25,491</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 19,194</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 23,115</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 22,902</span></p></td></tr><tr><td style="vertical-align:bottom;width:13.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Basic earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.16</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.20</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.22</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.27</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.30</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.23</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.27</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.27</span></p></td></tr><tr><td style="vertical-align:bottom;width:13.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Diluted earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.15</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.20</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.21</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.27</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.30</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.22</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.27</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.27</span></p></td></tr><tr><td style="vertical-align:bottom;width:13.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average shares outstanding (thousands):</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:13.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 84,777</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 84,488</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 84,501</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 84,566</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 84,636</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 84,659</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 84,765</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 84,783</span></p></td></tr><tr><td style="vertical-align:bottom;width:13.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 85,917</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 85,959</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 86,045</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 86,128</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 86,328</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 86,341</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 86,348</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 86,338</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Revenues over the comparative periods have been positively impacted by an increase in transactions processed over our GLN business document exchange, including the filing of regulatory documents resulting from Brexit, as well as an increase in subscriptions for our software solutions and global trade intelligence. In addition, we have seen increased revenues as a result of the nine acquisitions that we have completed since the beginning of fiscal 2021 through the end of the second quarter of fiscal 2023.</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">18</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;min-height:12.15pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our services revenues continue to have minor seasonal trends. In the first fiscal quarter of each year, we historically have seen slightly lower shipment volumes by air and truck which impact the aggregate number of transactions flowing through our GLN business document exchange. In the second fiscal quarter of each year, we historically have seen a slight increase in ocean services revenues as ocean carriers are in the midst of their customer contract negotiation period. In the third fiscal quarter of each year, we have historically seen shipment and transactional volumes at their highest. In the fourth fiscal quarter of each year, the various international holidays impact the aggregate number of shipping days in the quarter, and historically we have seen this adversely impact the number of transactions our network processes and, consequently, the amount of services revenues we receive during that period. In the second and fourth fiscal quarters of each year, we historically have seen a slight decrease in professional services revenues due to various international holidays and vacation seasons. Overall, the impact of seasonal trends has a relatively minor impact on our revenues quarter to quarter.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In the second quarter of 2023, revenues and gross margin increased compared to the first quarter of 2023 primarily due to growth in services revenues from new and existing customers, which contributed an incremental $3.7 million in revenue partially offset by the negative impact from foreign exchange rates. The growth in the second quarter of 2023 was driven by sales of our global trade intelligence solutions. Revenues were also positively impacted in the second quarter of 2023 compared to the first quarter of 2023 related to contribution from the 2023 Acquisitions, which contributed an incremental $2.9 million in revenues. Operating expenses increased in the second quarter of 2023 compared to the first quarter of 2023 primarily due to increased headcount-related costs. Net income decreased in the second quarter of 2023 compared to the first quarter of 2023 primarily due to an increase in income tax expense.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><a id="_aade19ed_4c6a_4c23_80f2_6982afd1a098"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="LIQUIDITYANDCAPITALRESOURCES_33729"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">LIQUIDITY AND CAPITAL RESOURCES</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cash. </span><span style="font-family:'Verdana';">We had $189.0 million and $213.4 million in cash as at July 31, 2022 and January 31, 2022, respectively. All cash was held in interest-bearing bank accounts, primarily with major Canadian, US and European banks. The cash balance decreased from January 31, 2022 to July 31, 2022 by $24.4 million primarily due to cash used for acquisitions partially offset by cash generated from operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Credit facility.</span><span style="font-family:'Verdana';"> The facility is a $350.0 million revolving operating credit facility to be available for general corporate purposes, including the financing of ongoing working capital needs and acquisitions. With the approval of the lenders, the credit facility can be expanded to a total of $500.0 million. The credit facility has a five-year maturity with no fixed repayment dates prior to the end of the five-year term ending January 2024. Borrowings under the credit facility are secured by a first charge over substantially all of Descartes&#x2019; assets. Depending on the type of advance, interest rates under the revolving operating portion of the credit facility are based on the Canada or US prime rate, Bankers&#x2019; Acceptance (BA), US dollar London Interbank Offered Rate (LIBOR) or the Secured Overnight Financing Rate (SOFR) plus an additional 0 to 250 basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit agreement. A standby fee of between 20 to 40 basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As at July 31, 2022, $350.0 million of the revolving operating credit facility remained available for use. We were in compliance with the covenants of the credit facility as at July 31, 2022 and remain in compliance as of the date of this MD&amp;A.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Short-form base shelf prospectus. </span><span style="font-family:'Verdana';">On July 16, 2020, we filed a final short-form base shelf prospectus (the &#x201C;2020 Base Shelf Prospectus&#x201D;), allowing us to offer and issue the following securities: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">19</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. The aggregate initial offering price of securities that may be sold by us (or certain of our current or future shareholders) pursuant to the 2020 Base Shelf Prospectus during the 25-month period that the 2020 Base Shelf Prospectus, including any amendments thereto, remains valid was limited to an aggregate of $1 billion. No securities were sold pursuant to the 2020 Base Shelf Prospectus, which was withdrawn in July 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July 15, 2022, we filed the 2022 Base Shelf Prospectus, allowing us to offer and issue an unlimited quantity of the following securities during the 25-month period following thereafter: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. No securities have yet been sold pursuant to the 2022 Base Shelf Prospectus.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Normal-course issuer bid. </span><span style="font-family:'Verdana';">On June 7, 2022, Descartes announced a NCIB, commencing June 10, 2022, to purchase up to approximately 7.4 million common shares in the open market for cancellation. Under the NCIB, Descartes would be permitted to repurchase for cancellation, at its discretion on or before June 9, 2023, up to 10% of the &#x201C;public float&#x201D; (calculated in accordance with the rules of the TSX) of Descartes&#x2019; issued and outstanding common shares. Any purchases under the NCIB will be subject to the terms and limitations applicable to such NCIB, and will be made through the facilities of the TSX, Nasdaq, other designated exchanges and/or alternative Canadian trading systems, or by such other means as may be permitted by the Ontario Securities Commission or other applicable Canadian Securities Administrators. No common shares have yet been purchased pursuant to the NCIB.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Working capital. </span><span style="font-family:'Verdana';">As at July 31, 2022, our working capital surplus (current assets less current liabilities) was $115.0 million. Current assets primarily include $189.0 million of cash, $48.9 million of current trade receivables and $20.7 million of prepaid assets. Current liabilities primarily include $71.4 million of accrued liabilities, $66.5 million of deferred revenue and $9.8 million of accounts payable. Our working capital has decreased from January 31, 2022 to July 31, 2022 by $43.6 million, primarily due to cash used for acquisitions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Historically, we&#x2019;ve financed our operations and met our capital expenditure requirements primarily through cash flows provided from operations, issuances of common shares and proceeds from debt. We anticipate that, considering the above, we have sufficient liquidity to fund our current cash requirements for working capital, contractual commitments, capital expenditures and other operating needs. We also believe that we have the ability to generate sufficient amounts of cash in the long term to meet planned growth targets and to fund strategic transactions. Should additional future financing be undertaken, the proceeds from any such transaction could be utilized to fund strategic transactions or for general corporate purposes, including the repayment of outstanding debt. We expect, from time to time, to continue to consider select strategic transactions to create value and improve performance, which may include acquisitions, dispositions, restructurings, joint ventures and partnerships, and we may undertake further financing transactions, including draws on our credit facility, other debt instruments or equity offerings, in connection with any such potential strategic transaction.</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">20</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">With respect to earnings of our non-Canadian subsidiaries, our intention is that these earnings will be reinvested in each subsidiary indefinitely. Of the $189.0 million of cash as at July 31, 2022, $67.6 million was held by our foreign subsidiaries, most significantly in the United States with lesser amounts held in other countries in the EMEA and Asia Pacific regions. To date, we have not encountered significant legal or practical restrictions on the abilities of our subsidiaries to repatriate money to Canada, even if such restrictions may exist in respect of certain foreign jurisdictions where we have subsidiaries. In the future, if we elect to repatriate the unremitted earnings of our foreign subsidiaries in the form of dividends, or if the shares of the foreign subsidiaries are sold or transferred, then we could be subject to additional Canadian or foreign income taxes, net of the impact of any available foreign tax credits, which would result in a higher effective tax rate. We have not provided for foreign withholding taxes or deferred income tax liabilities related to unremitted earnings of our non-Canadian subsidiaries, since such earnings are considered permanently invested in those subsidiaries or are not subject to withholding taxes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:61.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:61.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:16.78%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Second&#xA0;Quarter&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">First&#xA0;Half&#xA0;of</b></p></td></tr><tr><td style="vertical-align:bottom;width:61.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cash provided by operating activities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 46.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 46.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 90.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 87.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Additions to property and equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (1.8)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (0.9)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (3.4)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (2.5)</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Acquisition of subsidiaries, net of cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (61.1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (54.4)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (104.0)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (90.3)</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Credit facility and other debt repayments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (1.1)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (1.1)</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Payment of debt issuance costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> &#x2014;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (0.1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (0.1)</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Issuance of common shares, net of issuance costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 0.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 1.5</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Payment of contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (5.2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> &#x2014;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (5.2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> &#x2014;</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Effect of foreign exchange rate on cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (1.2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (0.6)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (3.0)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (0.1)</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net change in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (22.8)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (9.7)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> (24.4)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> (5.3)</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cash, beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 211.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 138.1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 213.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 133.7</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cash, end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 189.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 128.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 189.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;"> 128.4</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cash provided by operating activities</span><span style="font-family:'Verdana';"> was $90.8 million and $87.3 million for the first half of 2023 and 2022, respectively, and $46.4 million for both the second quarter of 2023 and 2022, respectively. For the first half of 2023, the $90.8 million of cash provided by operating activities resulted from $46.0 million of net income, plus adjustments for $44.1 million of non-cash items included in net income and plus $0.7 million of cash provided from changes in our operating assets and liabilities. For the first half of 2022, the $87.3 million of cash provided by operating activities resulted from $41.6 million of net income, plus adjustments for $37.6 million of non-cash items included in net income and plus $8.1 million of cash provided from changes in our operating assets and liabilities. Cash provided by operating activities increased in the first half of 2023 compared to the same period of 2022 due to an increase in net income adjusted for non-cash items.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the second quarter of 2023, the $46.4 million of cash provided by operating activities resulted from $22.9 million of net income, plus adjustments for $22.5 million of non-cash items included in net income and plus $1.0 million of cash provided from changes in our operating assets and liabilities. For the second quarter of 2022, the $46.4 million of cash provided by operating activities resulted from $23.2 million of net income, plus adjustments for $17.5 million of non-cash items included in net income and plus $5.7 million of cash provided from changes in our operating assets and liabilities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Additions to property and equipment</span><span style="font-family:'Verdana';"> were $3.4 million and $2.5 million for the first half of 2023 and 2022, respectively, and $1.8 million and $0.9 million for the second quarter of 2023 and 2022. Additions to property and equipment increased in the first half and second quarter of 2023 compared to the same periods of 2022 due to the timing of investments in computing equipment and software to support our network and continue to enhance our security infrastructure.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Acquisition of subsidiaries, net of cash acquired</span><span style="font-family:'Verdana';"> of $104.0 million and $90.3 million for the first half of 2023 and 2022, respectively, and $61.1 million and $54.4 million for the second quarter of 2023 and 2022, </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">21</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;min-height:12.15pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">respectively. Acquisitions in the first half of 2023 related to NetCHB, Foxtrot and XPS. Acquisitions in the first half of 2022 related to QuestaWeb, Portrix and GreenMile.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Payment of debt issuance costs </span><span style="font-family:'Verdana';">were $0.1 million for both the first half of 2023 and 2022 and nil for both the second quarter of 2023 and 2022. Debt issuance costs relate to costs paid in amending the terms of our credit facility agreement.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Issuance of common shares, net of issuance costs </span><span style="font-family:'Verdana';">were $0.5 million and $1.5 million for the first half of 2023 and 2022, respectively, and $0.1 million and $0.9 million for the second quarter of 2023 and 2022, respectively. In the first half and second quarter of 2023 and 2022, respectively, the cash provided was a result of the exercise of employee stock options.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Payment of contingent consideration</span><span style="font-family:'Verdana';"> was $5.2 million and nil for the first half of 2023 and 2022, respectively, and $5.2 million and nil for the second quarter of 2023 and 2022, respectively. Contingent consideration paid in the first half and second quarter of 2023 totaled $10.5 million of which $5.2 million related to the portion of the earn-out arrangements accrued for at the time of acquisition and the remainder of $5.3 million was paid out of cash flow from operating activities. In the first half and second quarter of 2023, the contingent consideration paid related to the acquisitions of Kontainers and ShipTrack.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#x200B;</span></p><a id="_c6bbdd2c_bb4d_42fd_bfba_dad85b306775"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="COMMITMENTSCONTINGENCIESANDGUARANTEES_46"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">COMMITMENTS, CONTINGENCIES AND GUARANTEES</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Commitments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">To facilitate a better understanding of our commitments, the following information is provided (in millions of dollars) in respect of our operating obligations as of July 31, 2022:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:36.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:36.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.55%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Less&#xA0;than</b><span style="font-family:'Verdana';">&#xA0;</span><b style="font-family:'Verdana';font-weight:bold;">1&#xA0;year</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">1-3&#xA0;years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.72%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">4-5&#xA0;years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.89%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">More&#xA0;than</b><span style="font-family:'Verdana';">&#xA0;</span><b style="font-family:'Verdana';font-weight:bold;">5&#xA0;years</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Operating lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 3.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 4.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 0.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> 9.1</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Lease Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are committed under non-cancelable operating leases for buildings, vehicles and computer equipment with terms expiring at various dates through 2030. The undiscounted future minimum amounts payable under these lease agreements are presented in the table above.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Other Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Deferred Share Unit (&#x201C;DSU&#x201D;) and Cash-settled Restricted Share Unit (&#x201C;CRSU&#x201D;) Plans</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As discussed in Note 2 to the audited consolidated financial statements for 2022 included in our 2022 Annual Report, we maintain DSU and CRSU plans for our directors and employees. Any payments made pursuant to these plans are settled in cash. For DSUs and CRSUs, the units vest over time and the liability recognized at any given consolidated balance sheet date reflects only those units vested at that date that have not yet been settled in cash. As such, we had an unrecognized aggregate amount for the unvested DSUs and CRSUs of $0.9 million and $1.1 million, respectively, at July 31, 2022. The ultimate liability for any payment of DSUs and CRSUs is dependent on the trading price of our common shares. To partially offset our exposure to fluctuations in our stock price as a result of our DSU Plan, we have entered into equity derivative contracts, including floating-rate equity forwards. As at July 31, 2022, we had equity derivatives for 281,768 Descartes common shares and a DSU liability for 281,768 Descartes common shares, resulting in minimal net exposure resulting from changes to our share price.</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">22</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Contingencies</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are subject to a variety of other claims and suits that arise from time to time in the ordinary course of our business. The consequences of these matters are not presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate liability is not currently expected to have a material effect on our results of operations or financial position.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Product Warranties</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we provide our customers with product warranties relating to the performance of our hardware, software and services. To date, we have not encountered material costs as a result of such obligations and have not accrued any liabilities related to such obligations in our condensed consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Business combination agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In respect of our acquisitions of Kontainers, ShipTrack, GreenMile, NetCHB and XPS, up to $157.8 million in cash may become payable if certain revenue performance targets are met in the two years following the acquisition. A balance of $27.6 million is accrued related to the fair value of this contingent consideration as at July 31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Guarantees</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of business, we enter into a variety of agreements that may contain features that meet the definition of a guarantee under ASC Topic 460, &#x201C;Guarantees&#x201D;. The following lists our significant guarantees:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Intellectual property indemnification obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by third parties arising from the use of our products. In the event of such a claim, we are generally obligated to defend our customers against the claim and we are liable to pay damages and costs assessed against our customers that are payable as part of a final judgment or settlement. These intellectual property infringement indemnification clauses are not generally subject to any dollar limits and remain in force for the term of our license agreement with our customer, which license terms are typically perpetual. Historically, we have not encountered material costs as a result of such indemnification obligations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Other indemnification agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we enter into various agreements that provide general indemnities. These indemnities typically arise in connection with purchases and sales of assets, securities offerings or buy-backs, service contracts, administration of employee benefit plans, retention of officers and directors, membership agreements, customer financing transactions, and leasing transactions. In addition, our corporate by-laws provide for the indemnification of our directors and officers. Each of these indemnities requires us, in certain circumstances, to compensate the counterparties for various costs resulting from breaches of representations or obligations under such arrangements, or as a result of third party claims that may be suffered by the counterparty as a consequence of the transaction. We believe that the likelihood that we could incur significant liability under these obligations is remote. Historically, we have not made any significant payments under such indemnities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In evaluating estimated losses for the guarantees or indemnities described above, we consider such factors as the degree of probability of an unfavorable outcome and the ability to make a reasonable estimate of the amount of loss. We are unable to make a reasonable estimate of the maximum potential amount payable under such guarantees or indemnities as many of these arrangements do not specify a maximum potential dollar exposure or time limitation. The amount also depends on the outcome of future events and conditions, which cannot be predicted. Given the foregoing, to date, we have not accrued any liability in our condensed consolidated financial statements for the guarantees or indemnities described above.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">23</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;min-height:12.15pt;"><a id="_aba851fc_a44e_42bf_a913_55c89b9bf5a8"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="OUTSTANDINGSHAREDATA_885645"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">OUTSTANDING SHARE DATA</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have an unlimited number of common shares authorized for issuance. As of September 7, 2022, we had 84,791,587 common shares issued and outstanding.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of September 7, 2022, there were 1,624,938 options issued and outstanding, and 2,700,683 options remaining available for grant under all stock option plans.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of September 7, 2022, there were 915,233 performance share units (&#x201C;PSUs&#x201D;) and 474,631 restricted share units (&#x201C;RSUs&#x201D;) issued and outstanding, with a potential of up to a further 260,766 PSUs being earned if maximum performance is achieved in respect of the outstanding PSU awards. Also, as of September 7, 2022, there were 616,128 units remaining available for grant under all performance and restricted share unit plans.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Our board of directors has adopted a shareholder rights plan (the &#x201C;Rights Plan&#x201D;) to ensure the fair treatment of shareholders in connection with any take-over offer, and to provide our board of directors and shareholders with additional time to fully consider any unsolicited take-over bid. We did not adopt the Rights Plan in response to any specific proposal to acquire control of the Company. The Rights Plan was approved by the TSX and was originally approved by our shareholders on May 18, 2005 and took effect as of November 29, 2004. An amended and restated Rights Plan was ratified by shareholders at our annual shareholders&#x2019; meeting held on May 28, 2020. The Rights Plan requires re-approval by the shareholders every three years. We understand that the Rights Plan is similar to plans adopted by other Canadian companies and approved by their shareholders.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><a id="_910b9b64_1fa8_489c_8192_d471b738f78b"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="APPLICATIONOFCRITICALACCOUNTINGPOLICIESA"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">APPLICATION OF CRITICAL ACCOUNTING POLICIES AND ESTIMATES</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our consolidated financial statements and accompanying notes are prepared in accordance with GAAP. Preparing financial statements requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenues and expenses. These estimates and assumptions are affected by management&#x2019;s application of accounting policies. Estimates are deemed critical when a different estimate could have reasonably been used or where changes in the estimates are reasonably likely to occur from period to period and would materially impact our financial condition or results of operations. Our accounting policies are discussed in Note 2 to the audited consolidated financial statements for 2022 included in our 2022 Annual Report.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our management has discussed the development, selection and application of our critical accounting policies with the audit committee of the board of directors.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The following reflect our more significant estimates, judgments and assumptions which we believe are the most critical to aid in fully understanding and evaluating our reported financial results for the period ended July 31, 2022:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Revenue recognition;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Impairment of long-lived assets;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Goodwill;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Stock-based compensation;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Income taxes; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Business combinations.</span></td></tr></table><div style="margin-top:12pt;"></div></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">24</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;min-height:12.15pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The significant accounting policies are unchanged from those disclosed in the Company&#x2019;s 2022 Annual Report.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><a id="_097dcc0c_0e86_43fc_9c10_ae12c4c2883d"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="CHANGEININITIALADOPTIONOFACCOUNTINGPOLIC"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CHANGE IN / INITIAL ADOPTION OF ACCOUNTING POLICIES</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Recently issued accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In October 2021, the FASB issued Accounting Standards Update 2021-08, &#x201C;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers&#x201D; (&#x201C;ASU 2021-08&#x201D;). ASU 2021-08 provides guidance on how to recognize and measure acquired contract assets and liabilities from revenue contracts in a business combination. ASU 2021-08 is effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2022, which will be our fiscal year beginning February 1, 2023 (fiscal 2024). Early adoption is permitted. The Company will adopt this guidance in the first quarter of fiscal 2024. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><a id="_ff4782c4_2845_4746_9f1d_24ff945aef17"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="CONTROLSANDPROCEDURES_964546"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONTROLS AND PROCEDURES</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">During the period beginning on May 1, 2022 and ended on July 31, 2022, no changes were made to the Company&#x2019;s internal control over financial reporting that have materially affected, or are reasonably likely to materially affect, the Company&#x2019;s internal control over financial reporting.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">&#x200B;</span></p><a id="_db0eb09b_500a_4046_922b_e1d85d8efd28"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="TRENDSBUSINESSOUTLOOK_231983"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">TRENDS / BUSINESS OUTLOOK</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">This section discusses our outlook for fiscal 2023 and in general as of the date of this MD&amp;A and contains forward-looking statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The impact of the Ukraine Conflict on our customers and suppliers, on the global economy in general and on our business specifically is uncertain at this time. While we have limited direct business dealings in either Russia or Ukraine, it&#x2019;s probable that the Ukraine Conflict, the political and economic measures taken by other countries in response to the Ukraine Conflict and the potential retaliatory actions that Russia or other countries might take in response to these political and economic measures could have a material impact on the global economy, global trade, global fuel prices and/or the individual economies of countries that may be dependent on Russia for oil and gas supplies and in which we may have significant business dealings. Each of these consequences could impact the level of usage and/or demand for our products and services and our resulting revenues. In addition, it has been speculated that retaliatory actions by Russia or other countries to economic sanctions could include widespread cyber-attacks. Any such attacks, if successful, could adversely impact our business or the businesses of our customers and suppliers.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The impact of the Pandemic on global trade both in the short-term and over the longer-term continues to be uncertain at this time. As discussed in previous quarterly versions of our MD&amp;A, during the period of the Pandemic we had observed </span><span style="font-family:'Verdana';">some reduced shipment volumes across various modes of transportation, particularly in air cargo, and were aware of some customers who reduced or temporarily suspended operations during the Pandemic or otherwise experienced financial hardship as a result of the Pandemic. Although we have come to understand that the impact of the Pandemic will be felt in waves at various times, as the time of this MD&amp;A, we have observed that shipment volumes and general economic activity in our industry have largely returned to what we would consider &#x201C;pre-Pandemic&#x201D; levels. We make this observation </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">25</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">recognizing that some countries around the world will continue to come in and out of government-mandated business shutdowns as they struggle with further waves of infection relating to the Pandemic. Given this ongoing uncertainty, we don&#x2019;t know what the impact of these events on overall global trade volumes on a quarter to quarter basis may be, or over the longer-term and how that in turn may impact the use of Descartes&#x2019; products and services by its customers and whether such an impact will only be temporary or may continue for an extended period of time. It also remains unclear at this time whether, as a result of the Pandemic and related events, companies and/or consumers will alter trading, manufacturing and/or buying patterns from the patterns we have observed in the global economy in the past and if so, for how long.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">At the outset of the Pandemic, we took proactive measures to position our company to defend against the potential impact of the Pandemic while ensuring that we maintained our flexibility to react quickly when a normalization of business activity returns. While we will continue to be cautious as we consider the ongoing impact of the Pandemic, in fiscal 2023 we expect to continue to invest in our business through headcount growth and see a continued reduction of our restrictions on in-person marketing events and travel.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On January 1, 2021, the UK left the European Union and agreed to terms on a trade agreement that set out the tariffs and guidelines on imports and exports between the two regions. Despite the trade agreement, both parties agreed that import and export filings would now need to be made on shipments between the UK and the European Union with special trading rules for shipments to and from Northern Ireland. In addition, the UK implemented a system for electronic filings on imports and exports. As a result, we have been actively engaging with customers and service providers with solutions that assist them with these electronic filing requirements and as a result have seen a positive impact to our revenues starting in fiscal 2022. In May 2022, following political elections in Northern Ireland, some uncertainty has been introduced as to whether changes will be introduced to the existing filing regime. Should changes be made to regulations relating to the movement of goods between the UK and the European Union, or the special trading rules for shipments to and from Northern Ireland, such that the filing requirements related to imports and exports were somehow reduced, this could have an impact on the revenues we have been generating in this area of our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">More generally, our business may be impacted from time to time by the cyclical and seasonal nature of particular modes of transportation and the freight market, as well as the cyclical and seasonal nature of the industries that such markets serve. Factors which may create cyclical fluctuations in such modes of transportation or the freight market in general include legal and regulatory requirements (for example Brexit), timing of contract renewals between our customers and their own customers, seasonal-based tariffs, vacation periods applicable to particular shipping or receiving nations, weather-related or global health events that impact shipping in particular geographies and amendments to international trade agreements. In particular, the uncertainties arising from the Pandemic and steps taken by governments, businesses, other organizations and private citizens to respond to the Pandemic could continue to adversely impact global shipment volumes in all modes of transportation in fiscal 2023. Since some of our revenues from particular products and services are tied to the volume of shipments being processed, adverse fluctuations in the volume of global shipments, or shipments in any particular mode of transportation, may adversely affect our revenues. Significant declines in shipment volumes could likely have a material adverse effect on our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Industry consolidation, rapid technological change, growth of ecommerce and frequent new product introductions and enhancements continue to characterize the software and services industries &#x2013; particularly for logistics management technology companies. Organizations are increasingly requiring greater levels of functionality and more sophisticated product offerings from their software and services providers.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Increased importance is being placed on leveraging cloud-based technology to better manage logistics processes and to connect and collaborate with trading partners on a global basis, as well as to reuse and share supply chain data in order to accelerate time-to-value. Cloud-based technology also enables business networks to more easily unite and integrate services provided by a broad range of partners and technology alliances to extend functionality and further enhance collaboration between business communities. As a </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">26</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">result, we believe there is a trend away from using manual and paper-based supply chain and logistics processes towards electronic processes powered by the exchange of electronic information between logistics and supply chain participants.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Accordingly, we expect that our future success will be dependent upon our ability to enhance current products or develop and introduce new products offering enhanced performance and new functionality at competitive prices. In particular, we believe customers are looking for end-to-end solutions that combine a multi-modal, multi-process network with business document exchange and wireless mobile resource management applications with end-to-end global trade compliance, trade content and collaborative supply chain execution applications. These applications include freight bookings, contract and rate management, classification of goods for tariff and duty purposes, sanctioned party screening, customs filings and electronic shipment manifest processes, transportation management, routing and scheduling, purchase order to dock door processes, and inventory visibility.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We believe there is a continued acceptance of subscription pricing and SaaS business models in the markets we serve that provide lower up-front cost and easier-to-maintain alternatives than may be available through traditional perpetual license pricing models. In the first half of fiscal 2023, our services revenues comprised 89% of our total revenues, with the balance being license, professional services and other revenues. We expect that our focus in fiscal 2023 will remain on generating services revenues, primarily by promoting the use of our GLN (including customs compliance services) and the migration of customers using our legacy license-based products to our services-based architecture. We anticipate maintaining the flexibility to license our products to those customers who prefer to buy the products in that fashion and the composition of our revenues in any one quarter will be impacted by the buying preferences of our customers.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have significant contracts with our license customers for ongoing support and maintenance, as well as significant service contracts which provide us with recurring services revenues. After their initial term, our service contracts are generally renewable at a customer&#x2019;s option, and there are generally no mandatory payment obligations or obligations to license additional software or subscribe for additional services. In a typical year, based on our historic experience, we anticipate that over a one-year period we may lose approximately 4% to 6% of our aggregate annualized recurring revenues from the previous year in the ordinary course, excluding consideration of new customers.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We internally measure and manage our &#x201C;baseline calibration&#x201D;, which we define as the difference between our &#x201C;baseline revenues&#x201D; and &#x201C;baseline operating expenses&#x201D;. Each of these measures constitutes a &#x201C;supplementary financial measure&#x201D; under Canadian Securities Administrators&#x2019; National Instrument 52-112 and does not have a directly comparable financial measure disclosed in our financial statements. We define our &#x201C;baseline revenues&#x201D; as our visible, recurring and contracted revenues. Baseline revenues are not a projection of anticipated total revenues for a period as they exclude any anticipated or expected new sales for a period beyond the date that the baseline revenues are measured. We define our &#x201C;baseline operating expenses&#x201D; as our total expenses less interest, investment income, taxes, depreciation and amortization, stock-based compensation (for which we include related costs and taxes), acquisition-related costs and restructuring charges. Baseline operating expenses are not a projection of anticipated total expenses for a period as they exclude any expenses associated with anticipated or expected new sales for a period beyond the date that the baseline expenses are measured. Our baseline calibration is not a projection of net income for a period or adjusted earnings before interest, taxes, depreciation and amortization for a period as it excludes anticipated or expected new sales for a period beyond the date that the baseline calibration is measured, excludes any costs of goods sold or other expenses associated with such new sales, and excludes the expenses identified as excluded in the definition of &#x201C;baseline operating expenses,&#x201D; above. We calculate and disclose &#x201C;baseline revenues,&#x201D; &#x201C;baseline operating expenses&#x201D; and &#x201C;baseline calibration&#x201D; because management uses these metrics in determining its planned levels of expenditures for a period and we believe this information is useful to our investors. These metrics are estimated operating metrics and not projections, nor actual financial results, and are not indicative of current or future performance. As noted above, these metrics do not have any directly comparable financial measures disclosed in our financial statements. At August 1 2022, using foreign exchange rates of $0.78 to CAD $1.00, $1.02 to EUR 1.00 and </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">27</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">$1.22 to &#xA3;1.00, we estimated that our baseline revenues for the third quarter of 2023 are approximately $107.0 million and our baseline operating expenses are approximately $66.5 million. We consider this to be our baseline calibration of approximately $40.5 million for the third quarter of 2023, or approximately 38% of our baseline revenues as at August 1, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We estimate that aggregate amortization expense for existing intangible assets will be $29.5 million for the remainder of 2023, $48.9 million for 2024, $45.8 million for 2025, $41.5 million for 2026, $26.9 million for 2027 and $60.0 million thereafter. Expected future amortization expense is based on the level of existing intangible assets at July 31, 2022, is subject to fluctuations in foreign exchange rates and assumes no future adjustments or impairment of existing intangible assets.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We anticipate that stock-based compensation expense for the remainder of fiscal 2023 for grants outstanding as at July 31, 2022 will be approximately $7.5 million, subject to any necessary adjustments resulting from actual stock-based compensation forfeitures and fluctuations in foreign exchange rates.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We performed our annual goodwill impairment tests in accordance with ASC Topic 350, &#x201C;Intangibles &#x2013; Goodwill and Other&#x201D; (&#x201C;ASC Topic 350&#x201D;) as at October 31, 2021 and determined that there was no evidence of impairment. We are currently scheduled to perform our next annual impairment test during the third quarter of fiscal 2023. We will continue to perform quarterly analyses of whether any event has occurred that would more likely than not reduce our enterprise value below our carrying amounts and, if so, we will perform a goodwill impairment test between the annual dates. The likelihood of any future impairment increases if our public market capitalization is adversely impacted by global economic, capital market or other conditions for a sustained period of time. Any future impairment adjustment will be recognized as an expense in the period that such adjustment is identified.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the first half of 2023, capital expenditures were $3.4 million or 1% of revenues, as we continue to invest in computer equipment and software to support our network and build out our infrastructure. We anticipate that we will incur approximately $2.5 million to $3.5 million in capital expenditures in the remainder of fiscal 2023 primarily related to investments in our network and security infrastructure.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We conduct business in a variety of foreign currencies and, as a result, our foreign operations are subject to foreign exchange fluctuations. Our businesses operate in their local currency environment and use their local currency as their functional currency. Assets, including cash, and liabilities of foreign operations are translated into US dollars at the exchange rate in effect at the balance sheet date. Revenues and expenses of foreign operations are translated using daily exchange rates. Translation adjustments resulting from this process are accumulated in other comprehensive income (loss) as a separate component of shareholders&#x2019; equity.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Transactions incurred in currencies other than the functional currency are converted to the functional currency at the transaction date. All foreign currency transaction gains and losses are included in net income. We currently have no specific hedging program in place to address fluctuations in international currency exchange rates. In addition, we can make no accurate prediction of what will happen with international currency exchange rates going forward.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">There can be varied impacts on our results of operations as a consequence of movements in international currency exchange rates. In the second quarter of fiscal 2023, approximately 69% of our revenues were in US dollars, 10% in euro, 8% in Canadian dollars, 7% in British pound sterling, and the balance in mixed currencies. For that same period, approximately 45% of our operating expenses were in US dollars, 15% in euro, 26% in Canadian dollars, 5% in British pound sterling, and the balance in mixed currencies. With this distribution, we generally expect that our revenues will be negatively impacted when the US dollar strengthens compared to these foreign currencies.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">However, the impact from movements in foreign exchange rates on our other aspects of our results of operations are more varied. Generally, if the US dollar strengthens against the Canadian dollar, the decrease </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">28</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;min-height:12.15pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">in our expenses will be greater than the decrease in our revenue, resulting in an improvement in our results of operations. However, if the US dollar were to strengthen against the British pound or euro, the decrease in expenses would not be as large as the decrease in revenue, resulting in a weakening of our results of operations. We will continue to monitor the impact of foreign exchange on our operating results as changes in foreign exchange rates may have a significant negative impact on our revenue and results of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our tax expense for a period is difficult to predict as it depends on many factors, including the actual jurisdictions in which income is earned, the tax rates in those jurisdictions, the amount of deferred tax assets relating to the jurisdictions and the valuation allowances relating to those tax assets. We can provide no assurance as to the timing or amounts of any income tax expense or recovery, nor can we provide any assurance that our current valuation allowance for deferred tax assets will not need to be adjusted further.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We experienced an effective tax rate of approximately 26% in the first half of fiscal 2023, which is in our expected range of 25% to 30%. However, for the balance of this fiscal year, we believe that the tax rate may be lower than that typical range if additional uncertain tax positions are released during this fiscal year.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We intend to continue to actively explore business combinations to add complementary services, products and customers to our existing businesses. We also intend to continue to focus our acquisition activities on companies that are targeting the same customers as us and processing similar data and, to that end, we listen to our customers&#x2019; suggestions as they relate to acquisition opportunities. Depending on the size and scope of any business combination, or series of business combinations, we may choose or need to use our existing credit facility or need to raise additional debt or equity capital. However, there can be no assurance that we will be able to undertake such a financing transaction. If we use debt in connection with acquisition activity, we will incur additional interest expense from the date of the draw under such facility. Considering the balance of the credit facility as at July 31, 2022, and subject to any further draws or repayments on the credit facility, we anticipate that interest expense will be approximately $0.5 million in the remainder of fiscal 2023, which includes debt standby charges as well as the amortization of deferred financing charges.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Certain future commitments are set out above in the section of this MD&amp;A called &#x201C;Commitments, Contingencies and Guarantees&#x201D;. We believe that we have sufficient liquidity to fund our current operating and working capital requirements, including the payment of these commitments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;visibility:hidden;">&#x200B;</span></p><a id="_81119f9d_0301_4fbd_8ef6_8b2990b24840"></a><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:5pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"><a id="CERTAINFACTORSTHATMAYAFFECTFUTURERESULTS"></a></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CERTAIN FACTORS THAT MAY AFFECT FUTURE RESULTS</b></p><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:55.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Any investment in us will be subject to risks inherent to our business. Before making an investment decision, you should carefully consider the risks described below together with all other information included in this report. The risks and uncertainties described below are not the only ones facing us. Additional risks and uncertainties that we are not aware of or have not focused on, or that we currently deem immaterial, may also impair our business operations. This report is qualified in its entirety by these risk factors.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">If any of the risks actually occur, they could materially adversely affect our business, financial condition, liquidity or results of operations. In that case, the trading price of our securities could decline and you may lose all or part of your investment.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">System or network failures, information security breaches or other cyber-security threats in connection with our services and products could reduce our sales, impair our reputation, increase costs or result in liability claims, and seriously harm our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We rely on information technology networks and systems to process, transmit and store electronic information. Any disruption to our services and products, our own information systems or communications networks or those of third-party providers on which we rely as part of our own product offerings could result in the inability of our customers to receive our products for an indeterminate period of time. Our ability to </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">29</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">deliver our products and services depends on the development and maintenance of internet infrastructure by third parties. This includes maintenance of reliable networks with the necessary security, speed, data capacity and bandwidth. While our services are designed to operate without interruption, we have experienced, and may in the future experience, interruptions and delays in services and availability from time to time. In the event of a catastrophic event with respect to one or more of our systems, we may experience an extended period of system unavailability, which could negatively impact our relationship with customers. Our services and products may not function properly for reasons which may include, but are not limited to, the following:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">System or network failure;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Software errors, failures and crashes;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Interruption in the supply of power;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Virus proliferation or malware;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Communications failures;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Information or infrastructure security breaches;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Insufficient investment in infrastructure;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Earthquakes, fires, floods, natural disasters, or other force majeure events outside our control; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Acts of war, sabotage, cyber-attacks, denial-of-service attacks and/or terrorism.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In addition, any disruption to the availability of customer information, or any compromise to the integrity or confidentiality of customer information in our systems or networks, or the systems or networks of third parties on which we rely, could result in our customers being unable to effectively use our products or services or being forced to take mitigating actions to protect their information. Back-up and redundant systems may be insufficient or may fail and result in a disruption of availability of our products or services to our customers or the integrity or availability of our customers&#x2019; information.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Some jurisdictions have enacted laws requiring companies to notify individuals of data security breaches involving certain types of personal data and in some cases our agreements with certain customers require us to notify them in the event of a security incident. Such mandatory disclosures could lead to negative publicity and may cause our current and prospective customers to lose confidence in the effectiveness of our data security measures. Moreover, if a high-profile security breach occurs with respect to another SaaS provider, customers may lose trust in the security of the SaaS business model generally, which could adversely impact our ability to retain existing customers or attract new ones.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Any actual or perceived threat of disruption to our services or any compromise of customer information could impair our reputation and cause us to lose customers or revenue, or face litigation, necessitate customer service or repair work that would involve substantial costs and distract management from operating our business. Despite the implementation of advanced threat protection, information and network security measures and disaster recovery plans, our systems and those of third parties on which we rely may be vulnerable. If we are unable (or are perceived as being unable) to prevent, or promptly identify and remedy, such outages and breaches, our operations may be disrupted, our business reputation could be adversely affected, and there could be a negative impact on our financial condition and results of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">General economic conditions may affect our results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Demand for our products depends in large part upon the level of capital and operating expenditures by many of our customers. Decreased capital and operational spending could have a material adverse effect on the demand for our products and our business, results of operations, cash flow and overall financial condition. Decreased spending from customers could be caused by pessimism relating to particular economic indicators, such as increases in inflation and interest rates. Decreased spending could also be caused by the impact of geopolitical events, such as the Ukraine Conflict, or catastrophic events, such as the Pandemic. These types of economic indicators and events may also cause disruptions in the financial markets. Disruptions in the financial markets may adversely impact the availability of credit already arranged and the availability and cost of credit in the future, which could result in the delay or cancellation of projects or capital programs on which our business depends. In addition, disruptions in the financial markets may also </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">30</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">have an adverse impact on regional economies or the world economy, which could negatively impact the capital and operating expenditures of our customers. Decreased capital and operational spending or disruptions in the financial markets could be caused by inflationary pressures, acts of war, or the outbreak of a contagious illness, such as the Pandemic (and any intensification thereof). Any of these conditions may reduce the willingness or ability of our customers and prospective customers to commit funds to purchase our products and services, or their ability to pay for our products and services after purchase.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">The Pandemic has had a significant impact on the global economy and could adversely affect our business, results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The Pandemic and the efforts to respond to it have negatively impacted the global economy. The Pandemic has, at times, disrupted some manufacturing operations, global supply chains and created significant volatility and disruption of financial markets. These disruptions may continue in the future resulting in reduced commercial and consumer confidence and spending, increased unemployment, closure or restricted operating conditions for businesses, volatility in the global economy, instability in the credit and financial markets, labor shortages, and disruption in supply chains. In addition, potential price inflation caused by an excess of liquidity in countries where we conduct business may continue to increase the costs we incur to provide our solutions and may reduce profit margins.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We expect the significance of the Pandemic, including the extent of its effect on our financial condition and results of operations, to depend on, among other things, its duration, the success of efforts to contain it, its impact on the global economy and on our customers, and the impact of ongoing actions and future actions taken by government authorities and by us in response. While we are not able at this time to estimate the impact of the Pandemic, an extended period of global supply chain and economic disruption could materially and adversely affect our business, results of operations, access to sources of liquidity and financial condition. In addition, an extended global recession caused by the Pandemic could have a further adverse impact on our financial condition and operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Catastrophic events, armed conflict, wars, natural disasters, severe weather and disease and similar events could disrupt the demand of our customers for our products and services and our ability to operate our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our business may be negatively impacted to varying degrees by a number of events which are beyond our control, including acts of war, armed conflicts, energy blackouts, pandemics (or other public health crises), terrorist attacks, earthquakes, hurricanes, tornados, fires, floods, ice storms or other natural or manmade catastrophes. We cannot be sure that our emergency preparedness or the preparedness of our customers, including business continuity planning, to mitigate risks will be effective since such events can evolve very rapidly, and their impacts can be difficult to predict. As such, there can be no assurance that in the event of such a catastrophe that the operations and ability to carry on business of us or our customers will not be disrupted. The occurrence of such events may not release us from performing our obligations to third parties. A catastrophic event, including an outbreak of infectious disease, a pandemic or a similar health threat, such as the current Pandemic, or fear of any of the foregoing, could adversely impact us, our customers and our investments. In addition, liquidity and volatility, credit availability and market and financial conditions, all of which have been negatively impacted by the Pandemic, generally could change at any time as a result of any of these events. Any of these events in isolation or in combination, could have a material negative impact on our performance, financial condition, results of operations and cash flows.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">We may have difficulties identifying, successfully integrating or maintaining or growing our acquired businesses.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Businesses that we acquire may sell products or services that we have limited experience operating or managing. We may experience unanticipated challenges or difficulties identifying suitable acquisition candidates, integrating their businesses into our company, maintaining these businesses at their current </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">31</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">levels or growing these businesses. Factors that may impair our ability to identify, successfully integrate, maintain or grow acquired businesses may include, but are not limited to:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Challenges identifying suitable businesses to buy and negotiating the acquisition of those businesses on acceptable terms;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Challenges completing the acquisitions within our expected time frames and budgets;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Challenges in integrating acquired businesses with our business;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Loss of customers of the acquired business;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Loss of key personnel from the acquired business, such as former executive officers or key technical personnel;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Non-compatible business cultures;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">For regulatory compliance businesses, changes in government regulations impacting electronic regulatory filings or import/export compliance, including changes in which government agencies are responsible for gathering import and export information;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Difficulties in gaining necessary approvals in international markets to expand acquired businesses as contemplated;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Our inability to obtain or maintain necessary security clearances to provide international shipment management services;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Our failure to make appropriate capital investments in infrastructure to facilitate growth; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Other risk factors identified in this report.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We may fail to properly respond to any of these risks, which may have a material adverse effect on our business results.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Investments in acquisitions and other business initiatives involve a number of risks that could harm our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have in the past acquired, and in the future, expect to seek to acquire, additional products, services, customers, technologies and businesses that we believe are complementary to ours. We are unable to predict whether or when we will be able to identify any appropriate products, technologies or businesses for acquisition, or the likelihood that any potential acquisition will be available on terms acceptable to us or will be completed. We also, from time to time, take on investments in other business initiatives, such as the implementation of new systems.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Acquisitions and other business initiatives involve a number of risks, including: substantial investment of funds, diversion of management&#x2019;s attention from current operations; additional demands on resources, systems, procedures and controls; and disruption of our ongoing business. Acquisitions specifically involve risks, including: difficulties in integrating and retaining all or part of the acquired business, its customers and its personnel; assumption of disclosed and undisclosed liabilities; dealing with unfamiliar laws, customs and practices in foreign jurisdictions; and the effectiveness of the acquired company&#x2019;s internal controls and procedures. In addition, we may not identify all risks or fully assess risks identified in connection with an investment. As well, by investing in such initiatives, we may deplete our cash resources or dilute our shareholder base by issuing additional shares. Furthermore, for acquisitions, there is a risk that our valuation assumptions, customer retention expectations and our models for an acquired product or business may be erroneous or inappropriate due to foreseen or unforeseen circumstances and thereby cause us to overvalue an acquisition target. There is also a risk that the contemplated benefits of an acquisition or other investment may not materialize as planned or may not materialize within the time period or to the extent anticipated. The individual or combined effect of these risks could have a material adverse effect on our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">If we fail to attract and retain key personnel, it would adversely affect our ability to develop and effectively manage our business and inflationary pressures in compensation could impact the cost structure of our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Our performance is substantially dependent on the performance of our highly qualified management, technical expertise, and sales and marketing personnel, which we regard as key individuals to our business. Significant competition exists for management and skilled personnel and as a result of that competition we </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">32</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">are seeing wage and labor cost escalation in various areas and levels within our workforce. Our success is highly dependent on our ability to identify, hire, train, motivate, promote, and retain key individuals. In responding to inflationary wage pressure to retain or attract key individuals, we could see increases in our operating costs that outpace our ability to grow revenues. If we fail to cross train key employees, particularly those with specialized knowledge it could impair our ability to provide consistent and uninterrupted service to our customers. If we are not able to attract, retain or establish an effective succession planning program for key individuals it could have a material adverse effect on our business, results of operations, financial condition and the price of our common shares.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have in the past, and may in the future, make changes to our executive management team or board of directors. There can be no assurance that any such changes and the resulting transition will not have a material adverse effect on our business, results of operations, financial condition and the price of our common shares.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Changes in government filing or screening requirements for global trade may adversely impact our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our regulatory compliance services help our customers comply with government filing and screening requirements relating to global trade. The services that we offer may be impacted, from time to time, by changes in these requirements, including potential future changes as a consequence of Brexit, the United States-Mexico-Canada Agreement or similar cross-border trade agreements. Beginning in our fiscal 2021 year, we saw increased customs filing transactions and resulting revenues from our customs filing solutions in the UK as a result of Brexit and the changes in way goods moved between the EU and the UK (including goods moving to and from Northern Ireland) following Brexit. If the regulations relating to these requirements were to change, it could adversely impact that area of our business. In addition, and more generally, changes in requirements that impact electronic regulatory filings or import/export compliance, including changes adding or reducing filing requirements, changes in enforcement practices or changes in the government agency responsible for such requirements could adversely impact our business, results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Disruptions in the movement of freight could negatively affect our revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our business is highly dependent on the movement of freight from one point to another since we generate transaction revenues as freight is moved by, to or from our customers. If there are disruptions in the movement of freight, proper reporting or the overall volume of international shipments, whether as a result of labor disputes, weather or natural disasters, acts of war, terrorist events, political instability, changes in cross border trade agreements, contagious illness outbreaks (such as the Pandemic), or otherwise, then the traffic volume on our Global Logistics Network will be impacted and our revenues will be adversely affected. As these types of freight disruptions are generally unpredictable, there can be no assurance that our business, results of operations and financial condition will not be adversely affected by such events.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Our existing customers might cancel contracts with us, fail to renew contracts on their renewal dates, and/or fail to purchase additional services and products, and we may be unable to attract new customers.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We depend on our installed customer base for a significant portion of our revenues. We have significant contracts with our license customers for ongoing support and maintenance, as well as significant service contracts that provide recurring services revenues to us. In addition, our installed customer base has historically generated additional new license and services revenues for us. Service contracts are generally renewable at a customer&#x2019;s option and/or subject to cancellation rights, and there are generally no mandatory payment obligations or obligations to license additional software or subscribe for additional services.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">If our customers fail to renew their service contracts, fail to purchase additional services or products, or we are unable to attract new customers, then our revenues could decrease and our operating results could be adversely affected. Factors influencing such contract terminations could include changes in the financial circumstances of our customers, dissatisfaction with our products or services, our retirement or lack of support for our legacy products and services, our customers selecting or building alternate technologies to </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">33</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">replace us, the cost of our products and services as compared to the cost of products and services offered by our competitors, acceptance of future price increases, our ability to attract, hire and maintain qualified personnel to meet customer needs, consolidating activities in the market, and changes in our customers&#x2019; business or in regulation impacting our customers&#x2019; business that may no longer necessitate the use of our products or services, general economic or market conditions, or other reasons. Further, our customers could delay or terminate implementations or use of our services and products or be reluctant to migrate to new products. Such customers will not generate the revenues we may have anticipated within the timelines anticipated, if at all, and may be less likely to invest in additional services or products from us in the future. We may not be able to adjust our expense levels quickly enough to account for any such revenue losses. In addition, loss of one or more of our key customers could adversely impact our competitive position in the marketplace and hurt our credibility and ability to attract new customers.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Our success depends on our ability to continue to innovate and to create new solutions and enhancements to our existing products</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We may not be able to develop and introduce new solutions and enhancements to our existing products that respond to new technologies or shipment regulations on a timely basis. If we are unable to develop and sell new products and new features for our existing products that keep pace with rapid technological and regulatory change as well as developments in the transportation logistics industry, our business, results of operations and financial condition could be adversely affected.&#xA0;We intend to continue to invest significant resources in research and development to enhance our existing products and services and introduce new high-quality products that customers will want. If we are unable to predict or quickly react to user preferences or changes in the transportation logistics industry, or its regulatory requirements, or if we are unable to modify our products and services on a timely basis or to effectively bring new products to market, our sales may suffer.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In addition, we may experience difficulties with software or hardware development, design, integration with third-party software or hardware, or marketing that could delay or prevent our introduction, deployment or implementation of new solutions and enhancements. The introduction of new solutions by competitors, the emergence of new industry standards or the development of entirely new technologies to replace existing offerings could render our existing or future solutions obsolete.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We may not have sufficient resources to make the necessary investments in software development and our technical infrastructure, and we may experience difficulties that could delay or prevent the successful development, introduction or marketing of new products or enhancements. In addition, our products or enhancements may not meet increasingly complex customer requirements or achieve market acceptance at the rate we expect, or at all. Any failure by us to anticipate or respond adequately to technological advancements, customer requirements and changing industry standards, or any significant delays in the development, introduction or availability of new products or enhancements, could undermine our current market position and negatively impact our business, results of operations or financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">We may not remain competitive. Increased competition could seriously harm our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The market for supply chain technology is highly competitive and subject to rapid technological change. We expect that competition will increase in the future. To maintain and improve our competitive position, we must continue to develop and introduce in a timely and cost-effective manner new products, product features and services to keep pace with our competitors. We currently face competition from a large number of specific market entrants, some of which are focused on specific industries, geographic regions or other components of markets we operate in.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Current and potential competitors include supply chain application software vendors, customers that undertake internal software development efforts, value-added networks and business document exchanges, enterprise resource planning software vendors, regulatory filing companies, trade data vendors and general business application software vendors. Many of our current and potential competitors may have one or more of the following relative advantages:</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">34</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Established relationships with existing customers or prospects that we are targeting;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Superior product functionality and industry-specific expertise;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Broader range of products to offer and better product life cycle management;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Larger installed base of customers;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Greater financial, technical, marketing, sales, distribution and other resources;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Better performance;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Lower cost structure and more profitable operations;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Greater investment in infrastructure;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Greater worldwide presence;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Early adoption of, or adaptation to changes in, technology; or</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Longer operating history; and/or greater name recognition.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Further, current and potential competitors have established, or may establish, cooperative relationships and business combinations among themselves or with third parties to enhance their products, which may result in increased competition. In addition, we expect to experience increasing price competition and competition surrounding other commercial terms as we compete for market share. In particular, larger competitors or competitors with a broader range of services and products may bundle their products, rendering our products more expensive and/or less functional. As a result of these and other factors, we may be unable to compete successfully with our existing or new competitors.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Emergence or increased adoption of alternative sources for trade data may adversely impact our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">With recent acquisitions in the area of supplying trade data and content, an increasing portion of our business relates to the supply of trade data and content that is often used by our customers in other systems, such as enterprise resource planning systems. Emergence or increased adoption of alternative sources of this data and content could have an adverse impact on our customers&#x2019; needs to obtain this data and content from us and/or the need for certain of the third-party system vendors in this field to refer customers to us for this data and content, each of which could adversely impact upon the revenues and income we generate from these areas of our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">If we need additional capital in the future and are unable to obtain it or can only obtain it on unfavorable terms, our operations may be adversely affected, and the market price for our securities could decline.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Historically, we have financed our operations primarily through cash flows from our operations, the sale of our equity securities and borrowing under our credit facility. In addition to our current cash and available debt facilities, we may need to raise additional debt or equity capital to repay existing debt, fund expansion of our operations, to enhance our services and products, or to acquire or invest in complementary products, services, businesses or technologies. However, there can be no assurance that we will be able to undertake incremental financing transactions. If we raise additional funds through further issuances of convertible debt or equity securities, our existing shareholders could suffer significant dilution and any new equity securities we issue could have rights, preferences and privileges superior to those attaching to our common shares. Our current credit facility contains, and any debt financing secured by us in the future could contain restrictive covenants relating to our capital-raising activities and other financial and operational matters, which may make it more difficult for us to obtain additional capital and to pursue business opportunities, including potential acquisitions. In addition, we may not be able to obtain additional financing on terms favorable to us, if at all. If adequate funds are not available on terms favorable or at all, our operations and growth strategy may be adversely affected and the market price for our common shares could decline.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Changes in the value of the U.S. dollar, as compared to the currencies of other countries where we transact business, could harm our operating results and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Historically, the largest percentage of our revenues has been denominated in U.S. dollars. However, the majority of our international expenses, including the wages of our non-U.S. employees and certain key supply agreements, have been denominated in Canadian dollars, British pounds, euros and other foreign currencies. Therefore, changes in the value of the U.S. dollar as compared to the Canadian dollar, the British </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">35</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">pound, the euro and other foreign currencies may materially affect our operating results. We generally have not implemented hedging programs to mitigate our exposure to currency fluctuations affecting international accounts receivable, cash balances and inter-company accounts. We also have not hedged our exposure to currency fluctuations affecting future international revenues and expenses and other commitments. Accordingly, currency exchange rate fluctuations have caused, and may continue to cause, variability in our foreign currency denominated revenue streams, expenses, and our cost to settle foreign currency denominated liabilities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">We may have exposure to greater than anticipated tax liabilities or expenses.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are subject to income and non-income taxes in various jurisdictions, our tax structure is subject to review by both domestic and foreign taxation authorities and we currently have tax audits open in a number of jurisdictions in which we operate. On a quarterly basis, we assess the status of these audits and the potential for adverse outcomes to determine whether a provision for income and other taxes is appropriate. The timing of the resolution of income tax audits is highly uncertain, and the amounts ultimately paid, if any, upon resolution of the issues raised by the taxing authorities may differ from any amounts that we accrue from time to time. The actual amount of any change could vary significantly depending on the ultimate timing and nature of any settlements. We cannot currently provide an estimate of the range of possible outcomes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The determination of our worldwide provision for income taxes and other tax liabilities requires judgment. In the ordinary course of a global business, there are many transactions and calculations where the ultimate tax outcome is uncertain. Any audit of our tax filings could materially change the amount of current and deferred income tax assets and liabilities. We have recorded a valuation allowance against a portion of our net deferred tax assets. If we achieve a consistent level of profitability, the likelihood of further reducing our deferred tax valuation allowance for some portion of the losses incurred in prior periods in one of our jurisdictions will increase. We calculate our current and deferred tax provision based on estimates and assumptions that could differ from the actual results reflected in income tax returns filed during subsequent years. Adjustments based on filed returns are generally recorded in the period when the tax returns are filed and the global tax implications are known. Our estimate of the potential outcome for any uncertain tax issue is based on a number of assumptions. Any further changes to the valuation allowance for our deferred tax assets would also result in an income tax recovery or income tax expense, as applicable, on the consolidated statements of operations in the period in which the valuation allowance is changed.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Changes to earnings resulting from past acquisitions may adversely affect our operating results.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Under ASC Topic 805, &#x201C;Business Combinations&#x201D;, we allocate the total purchase price to an acquired company&#x2019;s net tangible assets, intangible assets and in-process research and development based on their values as of the date of the acquisition (including certain assets and liabilities that are recorded at fair value) and record the excess of the purchase price over those values as goodwill. Management&#x2019;s estimates of fair value are based upon assumptions believed to be reasonable but which are inherently uncertain. After we complete an acquisition, the following factors, among others, could result in material charges that would adversely affect our operating results and may adversely affect our cash flows:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Impairment of goodwill or intangible assets;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">A reduction in the useful lives of intangible assets acquired;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Identification of assumed contingent liabilities after we finalize the purchase price allocation period;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Charges to our operating results to eliminate certain pre-merger activities that duplicate those of the acquired company or to reduce our cost structure; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Charges to our operating results resulting from revised estimates to restructure an acquired company&#x2019;s operations after we finalize the purchase price allocation period.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Routine charges to our operating results associated with acquisitions include amortization of intangible assets, acquisition-related costs and restructuring charges. Acquisition-related costs primarily include retention bonuses, advisory services, brokerage services and administrative costs with respect to completed and prospective acquisitions.</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">36</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We expect to continue to incur additional costs associated with combining the operations of our acquired companies, which may be substantial. Additional costs may include costs of employee redeployment, relocation and retention, including salary increases or bonuses, accelerated stock-based compensation expenses and severance payments, reorganization or closure of facilities, taxes, and termination of contracts that provide redundant or conflicting services. These costs would be accounted for as expenses and would decrease our net income and earnings per share for the periods in which those adjustments are made.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">As we continue to increase our international operations we increase our exposure to international business risks that could cause our operating results to suffer.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">While our headquarters are in Canada, we currently have direct operations in the U.S., EMEA, Asia Pacific and South American regions. We anticipate that these international operations will continue to require significant management attention and financial resources to localize our services and products for delivery in these markets, to develop compliance expertise relating to international regulatory agencies, and to develop direct and indirect sales and support channels in those markets. We face a number of risks associated with conducting our business internationally that could negatively impact our operating results. These risks include, but are not limited to:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">The risk of continued or increased limitations of travel advisories or travel restrictions related to the outbreak of contagious illnesses, such as the Pandemic that is currently impacting global travel, could impact our ability to operate in certain markets and/or manage our operations in those markets;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Longer collection time from foreign clients, particularly in the EMEA region and the Asia Pacific region;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Difficulty in repatriating cash from certain foreign jurisdictions;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Language barriers, conflicting international business practices, and other difficulties related to the management and administration of a global business;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Increased management, travel, infrastructure and legal compliance costs associated with having international operations;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Difficulties and costs of staffing and managing geographically disparate direct and indirect operations;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Volatility or fluctuations in foreign currency and tariff rates;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Multiple, and possibly overlapping, tax structures;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Complying with complicated and widely differing global laws and regulations in areas such as employment, tax, privacy and data protection;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Trade restrictions;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Enhanced security procedures and requirements relating to certain jurisdictions;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">The need to consider characteristics unique to technology systems used internationally;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Economic or political instability in some markets; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Other risk factors set out herein.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">From time to time, we may be subject to litigation or dispute resolution that could result in significant costs to us and damage to our reputation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">From time to time, we may be subject to litigation or dispute resolution relating to any number or type of claims, including claims for damages related to undetected errors or malfunctions of our services and products or their deployment, claims related to previously-completed acquisition transactions or claims relating to applicable securities laws. Litigation may seriously harm our business because of the costs of defending the lawsuit, diversion of employees&#x2019; time and attention and potential damage to our reputation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Further, our services and products are complex and often implemented by our customers to interact with third-party technology or networks. Claims may be made against us for damages properly attributable to those third-party technologies or networks, regardless of our lack of responsibility for any failure resulting in a loss, even if our services and products perform in accordance with their functional specifications. We may also have disputes with key suppliers for damages incurred which, depending on resolution of the disputes, could impact the ongoing quality, price or availability of the services or products we procure from the supplier. Limitation of liability provisions in certain third-party contracts may not be enforceable under the laws of some jurisdictions. As a result, we could be required to pay substantial amounts of damages in </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">37</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">settlement or upon the determination of any of these types of claims and incur damage to our reputation and products. The likelihood of such claims and the amount of damages we may be required to pay may increase as our customers increasingly use our services and products for critical business functions, or rely on our services and products as the systems of record to store data for use by other customer applications. Our insurance may not cover potential claims or may not be adequate to cover all costs incurred in defense of potential claims or to indemnify us for all liability that may be imposed. A claim brought against us that is uninsured or underinsured could result in unanticipated costs, thereby harming our operating results and leading analysts or potential investors to lower their expectations of our performance, which could reduce the trading price of our common shares.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Increases in fuel prices, driver shortages and other increased transportation costs may have an adverse effect on the businesses of our customers resulting in them spending less money with us.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our customers are all involved, directly or indirectly, in the delivery of goods from one point to another, particularly transportation providers and freight forwarders. As the costs of these deliveries become more expensive, whether as a result of increases in fuel costs or otherwise, our customers may have fewer funds available to spend on our products and services. There can be no assurance that these companies will be able to allocate sufficient funds to use our products and services. In addition, rising fuel costs or driver shortages may cause global or geographic-specific reductions in the number of shipments being made, thereby impacting the number of transactions being processed by our Global Logistics Network and our corresponding network revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">We may not be able to compensate for downward pricing pressure on certain products and services by increased volumes of transactions or increased prices elsewhere in our business, ultimately resulting in lower revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Some of our products and services are sold to industries where there is downward pricing pressure on the particular product or service due to competition, general industry conditions or other causes. If we cannot offset any such downward pricing pressure, then the particular customer may generate less revenue for our business or we may have less aggregate revenue. This could have an adverse impact on our operating results.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Our success and ability to compete depend upon our ability to secure and protect patents, trademarks and other proprietary rights.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We consider certain aspects of our internal operations, products, services and related documentation to be proprietary, and we primarily rely on a combination of patent, copyright, trademark and trade secret laws and other measures to protect our proprietary rights. Patent applications or issued patents, as well as trademark, copyright, and trade secret rights may not provide adequate protection or competitive advantage and may require significant resources to obtain and defend. We will also not be able to protect our intellectual property if we are unable to enforce our rights or if we do not detect unauthorized use of our intellectual property. Despite our precautions, it may be possible for unauthorized third parties to copy our products and use information that we regard as proprietary to create products and services that compete with ours. We also rely on contractual restrictions in our agreements with customers, employees, outsourced developers and others to protect our intellectual property rights. There can be no assurance that these agreements will not be breached, that we will have adequate remedies for any breach, or that our patents, copyrights, trademarks or trade secrets will not otherwise become known. Through an escrow arrangement, we have granted some of our customers a contingent future right to use our source code for software products solely for their internal maintenance services. If our source code is accessed through an escrow, the likelihood of misappropriation or other misuse of our intellectual property may increase.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Moreover, the laws of some countries do not protect proprietary intellectual property rights as effectively as do the laws of the U.S. and Canada. Protecting and defending our intellectual property rights could be costly regardless of venue. In order to protect our intellectual property rights, we may be required to spend significant resources to monitor and protect these rights. The Company is currently involved in, and expects to remain involved in, certain litigation to protect its intellectual property from infringement by third parties. </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">38</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In addition, further litigation may be necessary in the future to enforce our intellectual property rights, to protect our trade secrets, to determine the validity and scope of the intellectual property rights of others or to defend against claims of infringement or invalidity. Litigation brought to protect and enforce our intellectual property rights could be costly, time consuming and distracting to management and could result in the impairment or loss of portions of our intellectual property. Furthermore, our efforts to enforce our intellectual property rights may be met with defenses, counterclaims and countersuits attacking the validity and enforceability of our intellectual property rights and/or exposing us to claims for damages in any related counterclaims or countersuits. Our inability to protect our proprietary technology against unauthorized copying or use, as well as any costly litigation or diversion of our management&#x2019;s attention and resources, could delay further sales or the implementation of our solutions, impair the functionality of our solutions, delay introductions of new solutions, result in our substituting inferior or more costly technologies into our solutions, or injure our reputation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">We are dependent on certain key vendors for the availability of hardware devices, which could impede our development and expansion.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We currently have relationships with a small number of hardware device vendors over which we have no operational or financial control and no influence in how these vendors conduct their businesses. Suppliers of hardware devices could among other things, extend delivery times, raise prices and limit supply due to their own shortages and business requirements. Interruption in the supply of equipment from these vendors could delay our ability to maintain, grow and expand our telematics solutions business and those areas of our business that interact with telematics units. If our relationships with any of these unit vendors were to terminate, there is no guarantee that our remaining unit vendors would be able to handle the increased equipment supply required to maintain and grow our expansive networks at our desired rates. There is also no guarantee that business relationships with other key unit vendors could be entered into on terms desirable or favorable to us, if at all. Fewer key vendors might mean that existing or potential customers are unable to meaningfully communicate using our Global Logistics Network, which may cause existing and potential customers to move to competitors&#x2019; products. Such equipment supply issues could adversely affect our business, results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Concerns about the environmental impacts of greenhouse gas emissions and global climate change may result in environmental taxes, charges, regulatory schemes, assessments or penalties, which could restrict or negatively impact our operations or reduce our profitability.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The impacts of human activity on global climate change have attracted considerable public and scientific attention, as well as the attention of the U.S. and other governments. Efforts are being made to reduce greenhouse gas emissions and energy consumption, including those from automobiles and other modes of transportation. The added cost of any environmental regulation, taxes, charges, assessments or penalties levied or imposed on our customers in light of these efforts could result in additional costs for our customers, which could lead them to reduce use of our services. There are also a number of legislative and environmental regulatory initiatives internationally that could restrict or negatively impact our operations or increase our costs. Additionally, environmental regulation, taxes, charges, assessments or penalties could be levied or imposed directly on us. Any enactment of laws or passage of regulations regarding greenhouse gas emissions by Canada, the U.S., or any other jurisdiction we conduct our business in, could adversely affect our operations and financial results.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">The general cyclical and seasonal nature of the freight market may have a material adverse effect on our business, results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Our business may be impacted from time to time by the general cyclical and seasonal nature of particular modes of transportation and the freight market in general, as well as the cyclical and seasonal nature of the industries that such markets serve. Factors which may create cyclical fluctuations in such modes of transportation or the freight market in general include legal and regulatory requirements, timing of contract renewals between our customers and their own customers, seasonal-based tariffs, vacation periods applicable to particular shipping or receiving nations, weather-related events that impact shipping in particular geographies and amendments to international trade agreements. Since some of our revenues from particular products and services are tied to the volume of shipments being processed, adverse </span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">39</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">fluctuations in the volume of global shipments or shipments in any particular mode of transportation may adversely affect our revenues. Declines in shipment volumes would likely have a material adverse effect on our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">If we are unable to generate broad market acceptance of our services, products and pricing, serious harm could result to our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We currently derive substantially all of our revenues from our federated network and global logistics technology solutions and expect to do so in the future. Broad market acceptance of these types of services and products, and their related pricing, is therefore critical to our future success. The demand for, and market acceptance of, our services and products is subject to a high level of uncertainty. Some of our services and products are often considered complex and may involve a new approach to the conduct of business by our customers. The market for our services and products may weaken, competitors may develop superior services and products that perform logistics services on a global scale or within a particular geographic region, or we may fail to develop or maintain acceptable services and products to address new market conditions, governmental regulations or technological changes. Any one of these events could have a material adverse effect on our business, results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Claims that we infringe third-party proprietary rights could trigger indemnification obligations and result in significant expenses or restrictions on our ability to provide our products or services.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Competitors and other third parties have claimed, and in the future, may claim, that our current or future services or products infringe their proprietary rights or assert other claims against us. Many of our competitors have obtained patents covering products and services generally related to our products and services, and they may assert these patents against us. Such claims, whether with or without merit, could be time consuming and expensive to litigate or settle and could divert management attention from focusing on our core business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As a result of such a dispute, we may have to pay damages, incur substantial legal fees, suspend the sale or deployment of our services and products, develop costly non-infringing technology, if possible, or enter into license agreements, which may not be available on terms acceptable to us, if at all. Any of these results would increase our expenses and could decrease the functionality of our services and products, which would make our services and products less attractive to our current and/or potential customers. We have agreed in some of our agreements, and may agree in the future, to indemnify other parties for any expenses or liabilities resulting from claimed infringements of the proprietary rights of third parties. If we are required to make payments pursuant to these indemnification agreements, such payments could have a material adverse effect on our business, results of operations and financial condition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Our results of operations may vary significantly from quarter to quarter and therefore may be difficult to predict or may fail to meet investment community expectations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our results of operations may vary from quarter to quarter in the future due to a variety of factors, many of which are outside of our control. Such factors include, but are not limited to:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Volatility or fluctuations in foreign currency exchange rates;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Volatility or fluctuations in interest rates;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Timing of acquisitions and related costs;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Timing of restructuring activities;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">The introduction of enhanced products and services from competitors;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Our ability to introduce new products and updates to our existing products on a timely basis;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">The termination of any key customer contracts, whether by the customer or by us;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Recognition and expensing of deferred tax assets;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Legal costs incurred in bringing or defending any litigation with customers or third-party providers, and any corresponding judgments or awards;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Legal and compliance costs incurred to comply with regulatory requirements;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Fluctuations in the demand for our services and products;</span></td></tr></table></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">40</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">The impact of stock-based compensation expense;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Price and functionality competition in our industry;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Changes in legislation and accounting standards;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Our ability to satisfy contractual obligations in customer contracts and deliver services and products to the satisfaction of our customers; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Other risk factors discussed in this report.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Although our revenues may fluctuate from quarter to quarter, significant portions of our expenses are not variable in the short term, and we may not be able to reduce them quickly to respond to decreases in revenues. If revenues are below expectations, this shortfall is likely to adversely and/or disproportionately affect our operating results. If this occurs, the trading price of our common shares may fall substantially.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">We may not be able to prevent or detect all errors or fraud.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Due to the inherent limitations of internal control systems, misstatements due to error or fraud may occur and may not be detected in a timely manner or at all. Accordingly, we cannot provide absolute assurance that all control issues, errors or instances of fraud, if any, impacting us have been or will be prevented or detected. In addition, over time, certain aspects of a control system may become inadequate because of changes in conditions, or the degree of compliance with the policies or procedures may deteriorate, which we may not be able to address quickly enough to prevent all instances of error or fraud. In connection with our on-going assessment of the effectiveness of our internal control over financial reporting, we may discover &#x201C;material weaknesses&#x201D; in our internal controls. A material weakness is a deficiency, or a combination of deficiencies, in internal control over financial reporting, such that there is a reasonable possibility that a material misstatement of the company&#x2019;s annual or interim financial statements will not be prevented or detected on a timely basis. The existence of any material weakness may require management to devote significant time and incur significant expense to remediate any such material weaknesses. The existence of any material weakness in our internal control over financial reporting may result in errors in our financial statements that could require us to make corrective adjustments, restate our financial statements, cause us to fail to meet our reporting obligations, and cause shareholders to lose confidence in our reported financial information, all of which could materially and adversely affect the market price of our securities. If we are unable to successfully identify and remediate any material weaknesses that may arise in a timely manner, the accuracy and timing of our financial reporting may be adversely affected, and we may be unable to maintain compliance with securities law requirements regarding timely filing of periodic reports and applicable stock exchange listing requirements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Privacy laws and regulations are extensive, open to various interpretations, complex to implement and may reduce demand for our products, and failure to comply may impose significant liabilities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 9pt 0pt;"><span style="font-family:'Verdana';">Our customers can use our products to collect, use, process and store information regarding their transactions with their customers. Federal, state and foreign government bodies and agencies have been increasingly adopting new laws and regulations regarding the collection, use, processing, storage and disclosure of such information obtained from consumers and individuals. In addition to government regulatory activity, privacy advocacy groups and the technology industry and other industries may consider various new, additional or different self-regulatory standards that may place additional burdens directly on our customers and target customers, and indirectly on us. Our products are expected to be capable of use by our customers in compliance with such laws and regulations. The functional and operational requirements and costs of compliance with such laws and regulations may adversely impact our business, and failure to enable our products to comply with such laws and regulations could lead to significant fines and penalties imposed by regulators, as well as claims by our customers or third parties. Additionally, all of these domestic and international legislative and regulatory initiatives could adversely affect our customers&#x2019; ability or desire to collect, use, process and store shipment logistics information, which could reduce demand for our products.</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">41</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">The price of our common shares has in the past, including recently, been volatile and may also be volatile in the future.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 9pt 0pt;"><span style="font-family:'Verdana';">The trading price of our common shares may be subject to fluctuation in the future. This may make it more difficult for you to resell your common shares when you want at prices that you find attractive or make it more difficult for us to raise capital through the issuance of commons shares. Increases in our common share price may also increase our compensation expense pursuant to our existing director, officer and employee compensation arrangements. We enter into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain share-based compensation expenses. Fluctuations in our common share price may be caused by events unrelated to our operating performance and beyond our control. Factors that may contribute to fluctuations include, but are not limited to:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Revenue or results of operations in any quarter failing to meet the expectations, published or otherwise, of the investment community;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Changes in recommendations or financial estimates by industry or investment analysts;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Changes in management or the composition of our board of directors;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Outcomes of litigation or arbitration proceedings;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Announcements of technological innovations or acquisitions by us or by our competitors;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Introduction of new products or significant customer wins or losses by us or by our competitors;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Developments with respect to our intellectual property rights or those of our competitors;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Fluctuations in the share prices of other companies in the technology and emerging growth sectors;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">General market conditions; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">Other risk factors set out in this report.</span></td></tr></table><div style="margin-top:9pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 9pt 0pt;"><span style="font-family:'Verdana';">If the market price of our common shares drops significantly, shareholders could institute securities class action lawsuits against us, regardless of the merits of such claims. Such a lawsuit could cause us to incur substantial costs and could divert the time and attention of our management and other resources from our business.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Fair value assessments of our intangible assets required by GAAP may require us to record significant non-cash charges associated with intangible asset impairment.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 9pt 0pt;"><span style="font-family:'Verdana';">Significant portions of our assets, which include customer agreements and relationships, non-compete covenants, existing technologies and trade names, are intangible. We amortize intangible assets on a straight-line basis over their estimated useful lives. We review the carrying value of these assets at least annually for evidence of impairment. In accordance with ASC Topic 360-10-35, &#x201C;Property, Plant, and Equipment: Overview: Subsequent Measurement&#x201D; an impairment loss is recognized when the estimate of undiscounted future cash flows generated by such assets is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. Future fair value assessments of intangible assets may require impairment charges to be recorded in the results of operations for future periods. This could impair our ability to achieve or maintain profitability in the future.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">If our common share price decreases to a level such that the fair value of our net assets is less than the carrying value of our net assets, we may be required to record additional significant non-cash charges associated with goodwill impairment.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We account for goodwill in accordance with ASC Topic 350, &#x201C;Intangibles &#x2013; Goodwill and Other&#x201D;, which among other things, requires that goodwill be tested for impairment at least annually. We have designated October 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> for our annual impairment test. Should the fair value of our net assets, determined by our market capitalization, be less than the carrying value of our net assets at future annual impairment test dates, we may have to recognize goodwill impairment losses in our results of operations in future periods. This could impair our ability to achieve or maintain profitability in the future.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:12pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">42</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_3875ce48_d83e_4b14_9eed_13e438f04e15"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">THE DESCARTES SYSTEMS GROUP&#xA0;INC.</b></p><a id="CONDENSEDCONSOLIDATEDBALANCESHEETS_69858"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONDENSED CONSOLIDATED BALANCE SHEETS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">(US DOLLARS IN THOUSANDS; US GAAP; UNAUDITED)</span></p><a id="_2a0f383d_a499_4b5c_9e5f_33ac38a75662"></a><a id="Tc_kQaxjgEi-0umxYPSM1IltQ_1_2"></a><a id="Tc_a38iBH_jNUCu6q9UigrZIA_1_4"></a><a id="Tc_EDGbrBl8PUelGWxYsXqLBg_2_2"></a><a id="Tc_xJxnCW6nukypUUmdrMT0iQ_2_4"></a><a id="Tc_k_HuAv2SXUKCgiaEWp9t4g_3_4"></a><a id="Tc_G0V7Q4X9a02uD5Zy9YgwCA_4_0"></a><a id="Tc_Vrs4u77CTESbBpD-6L-oFA_5_0"></a><a id="Tc_Ax7hYnH1NECis4RB1Bdpjw_6_0"></a><a id="Tc_vmmEDi-91UWkHjsdHVGR5A_7_0"></a><a id="Tc_pja_pJj1JE61wxpo8MKJbA_8_0"></a><a id="Tc_v1r5oI7rRU-xgVwdLwUcCg_9_0"></a><a id="Tc_RJzueSBfMUiiZlb8gIj2Wg_10_0"></a><a id="Tc_ppx2c_gREk-gH4sA6qQOQg_11_0"></a><a id="Tc_A3WM2aIxmE6-Docs5FIqbg_13_0"></a><a id="Tc_zYAlowmPpkCCDXqvEhfy6g_14_0"></a><a id="Tc_0fKTei8dZEKW15SdpsaUog_15_0"></a><a id="Tc_pphxzVpLA0eXATGnbi1MzQ_16_0"></a><a id="Tc_xaTG23d3zkWu_ILAgmyi6Q_17_0"></a><a id="Tc_3Yk0y0WkJkSIXyS2ZPXjww_18_0"></a><a id="Tc_hxU52SmRDUie8VAja4-O5g_20_0"></a><a id="Tc_SqIN0urOCEqa1UEUHcK9WA_21_0"></a><a id="Tc_X2PhHeAJn0OqgXuwa4Vg0g_22_0"></a><a id="Tc_vjvZIJqtwEuGnfufAFqu2A_23_0"></a><a id="Tc_xhc0MUX-WkCarhOC02gflQ_24_0"></a><a id="Tc_ok3yDOxcFUydSqi9ehy-tA_25_0"></a><a id="Tc_2jP4h20MS028f_uAo8iS-A_26_0"></a><a id="Tc_cyi8Mzw7cE-iIUxbCoENxA_28_0"></a><a id="Tc_wZ5H-okZekmBxtpq0XWMOQ_28_2"></a><a id="Tc_BvbY90cs_kmZznAiMfwrCA_28_4"></a><a id="Tc_XNJtc2g3Q02N0Tsn7NlQHA_29_0"></a><a id="Tc_rD_jjTR5dEKNW5OuIdQ_sQ_30_0"></a><a id="Tc_bj90NRucAkmaKfx-pGEc7Q_31_0"></a><a id="Tc_sauPz8X8DkWlVVoxKT7seA_32_0"></a><a id="Tc_6QGw02NK40aEW0UqIsK3Vw_34_0"></a><a id="Tc_HJ7hXzkfxkqvj0B8bXj9vg_35_0"></a><a id="Tc_fgN3dB_hdkCtsdhS28Pu5A_36_0"></a><a id="Tc_AFT9GjnH1EWpOdM6J402vg_37_0"></a><a id="Tc_gUMzWPFIYk-sd4RR02j90Q_38_0"></a><a id="Tc_sMTyuFZx-UeJ90i4WMfklA_39_0"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">(Audited)</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">ASSETS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">CURRENT ASSETS</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="Tc_CoYOglmyvk6203sBcSDPsw_6_2">189,030</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" id="Tc_ZgzM_VcQqUOFfbxdM_ehDA_6_4">213,437</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Accounts receivable (net)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Trade (Note 5)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="Tc_lqakdbetBEGtwO_XL0BWFw_8_2">48,913</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="Tc_4mRYGUdRaE2-dAYby5Ul1g_8_4">41,705</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Other (Note 6)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherReceivablesNetCurrent" scale="3" id="Tc_ZKEhOpSwEkeOdJDPSHjnTQ_9_2">11,420</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherReceivablesNetCurrent" scale="3" id="Tc_BoAiQ9yJT0umjNmmv8dnAA_9_4">14,075</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Prepaid expenses and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="Tc_IfIx2hkS5Uuqilf248UueA_10_2">20,664</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" id="Tc_yaCe7sIlLkicUChogpfhbA_10_4">21,974</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Inventory (Note 7)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="Tc_h6VBQozGu0GDbRSQ0QDrUA_11_2">814</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InventoryNet" scale="3" id="Tc_pt7VobN2bE-SnFlThNBdnQ_11_4">868</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AssetsCurrent" scale="3" id="Tc_rAGHMHu_J0aHk3j0vrIT5Q_12_2">270,841</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AssetsCurrent" scale="3" id="Tc_SzPk5wl88kGXrS3r5jVsFw_12_4">292,059</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">OTHER LONG-TERM ASSETS (Note 19)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsNoncurrent" scale="3" id="Tc_U_G97fNQSEKIMmf-IXVUhA_13_2">19,262</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsNoncurrent" scale="3" id="Tc_R_cAv47DUEeJqdaXYk5R4g_13_4">18,652</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">PROPERTY AND EQUIPMENT, NET (Note 8)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_Rtw2HxJbq0Sn9DMcEF_FvQ_14_2">11,400</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_VWMGzxBdO0OuPmi0O5L69w_14_4">10,817</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">RIGHT-OF-USE ASSETS (Note 13)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_yJ_LZg_gnkKj_fXaAyyp7Q_15_2">8,089</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" id="Tc_yrJRZ7IqPEiMhGlX1xhyxw_15_4">10,571</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">DEFERRED INCOME TAXES</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="Tc_VEX0MwxPoE-7R4uwxeaRNg_16_2">12,777</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" id="Tc_UrmV3E1NZEWn73N5VXl2bw_16_4">14,962</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">INTANGIBLE ASSETS, NET (Note 9)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" scale="3" id="Tc_40gp2cwrdk2HDdcpzGdDYA_17_2">252,565</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" scale="3" id="Tc_Ild_c2AstUKqiaw2pi2XIQ_17_4">229,609</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">GOODWILL (Note 10)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_WtRDSBuuSEuBblqzdU5zCQ_18_2">671,802</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_JWnbAlIzI0yXveP6D96eNg_18_4">608,761</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_nSHCxaNe4kiklqpH4F7_Mw_19_2">1,246,736</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Assets" scale="3" id="Tc_NIqyZ7sZGk6jD_94jaagNA_19_4">1,185,431</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">LIABILITIES AND SHAREHOLDERS&#x2019; EQUITY</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">CURRENT LIABILITIES</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Accounts payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsPayableCurrent" scale="3" id="Tc_TmrKM45iYEmEVOlgc-UGEw_22_2">9,837</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsPayableCurrent" scale="3" id="Tc_lyIOWXkiEEivlKBN8GwSVA_22_4">10,566</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Accrued liabilities (Note 11)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="Tc_nBnCp4c0I0uY-tfXrMWzBA_23_2">71,416</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="Tc_wEJWq-PV9UuYwiDG5oWQvA_23_4">56,442</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Lease obligations (Note 13)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_rEC_WyBHmk-jHasL6Xz5IA_24_2">3,604</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_o4ymGtqhqkiEStZGOCOfuA_24_4">4,029</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Income taxes payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesCurrent" scale="3" id="Tc_3PytBHNUekqCIDd8N-3m9A_25_2">4,449</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesCurrent" scale="3" id="Tc_Xs3mkTzEIkmZ3orIqLAPaw_25_4">5,616</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue (Note 19)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueCurrent" scale="3" id="Tc_MOgWFoCAwEKgDhXYUcrJww_26_2">66,547</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueCurrent" scale="3" id="Tc_dGj2-4g1h0SamZQlkzPvlQ_26_4">56,780</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesCurrent" scale="3" id="Tc_Pr7s6gLwbkqfT8HEqiQMGA_27_2">155,853</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesCurrent" scale="3" id="Tc_FkMiSZLjlESC1Na2b7FjFQ_27_4">133,433</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">LONG-TERM DEBT (Note 12)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#x2014;</b></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">LEASE OBLIGATIONS (Note 13)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_PAZt9K9UnkSInVeCDMK7Jg_29_2">5,094</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_ikfvWdIRhEiDC2kKboXM0w_29_4">7,382</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">DEFERRED REVENUE (Note 19)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueNoncurrent" scale="3" id="Tc_rzlvRwSx50uAOpZrRx_huw_30_2">1,746</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueNoncurrent" scale="3" id="Tc_8A0-0_KRVkGdkY4jt5X8DQ_30_4">1,920</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">INCOME TAXES PAYABLE</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesNoncurrent" scale="3" id="Tc_ciPKZgDg2Ei5oN5c1RM8sg_31_2">8,303</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedIncomeTaxesNoncurrent" scale="3" id="Tc_bMb8_fPvdkCClknkqAMZrA_31_4">7,354</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">DEFERRED INCOME TAXES</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="Tc_JEl-E9ucjkGnDkujAYSmXg_32_2">37,301</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" id="Tc_UidVfbX2YEupZL2nRPfbDA_32_4">35,523</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Liabilities" scale="3" id="Tc__E8ZkyZgO0id2IgH-Qy1fg_33_2">208,297</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Liabilities" scale="3" id="Tc_NJMSZIRru061t-G37aSbEA_33_4">185,612</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">COMMITMENTS, CONTINGENCIES AND GUARANTEES (Note 14)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">SHAREHOLDERS&#x2019; EQUITY (Note 15)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Common shares &#x2013; unlimited shares authorized; Shares </span><span style="-sec-ix-hidden:Hidden_a8_9DglvGECN4uvOONe2Fw;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">issued</span></span><span style="font-family:'Verdana';"> and </span><span style="-sec-ix-hidden:Hidden_EDCYd87Tq0GahtIYYqlOkQ;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">outstanding</span></span><span style="font-family:'Verdana';"> totaled </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesIssued" scale="0" id="Narr_o8mcOwaKBE2lKQS6cWnYdg">84,788,547</ix:nonFraction></span><span style="font-family:'Verdana';"> at July 31, 2022 (January 31, 2022 &#x2013; </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:CommonStockSharesOutstanding" scale="0" id="Narr_Q4j3_BF4FkizaW9s-sGHGA">84,756,210</ix:nonFraction></span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockValue" scale="3" id="Tc_sJz6VPufQE6JLG0Eyt5OKA_36_2">537,003</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CommonStockValue" scale="3" id="Tc_L1SAs6wmZk6HWSusWPbacw_36_4">536,297</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Additional paid-in capital</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" id="Tc__sv5posGEESN_7b2pUxMbQ_37_2">479,620</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" id="Tc_3dKvwYToH0eLP310oargfA_37_4">473,303</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated other comprehensive income (loss)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" sign="-" scale="3" id="Tc_-hUtQ4QhPkGeyc_uoaMxxg_38_2">26,813</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" sign="-" scale="3" id="Tc_bjtE_y0EjEOFNVZ3s1N9vA_38_4">12,393</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Retained earnings</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RetainedEarningsAccumulatedDeficit" scale="3" id="Tc_mOn3qCkfAEitQtsbsXiOUg_39_2">48,629</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RetainedEarningsAccumulatedDeficit" scale="3" id="Tc_BRqlIwEwtUqZJwl6iS6VrA_39_4">2,612</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_NQhdz8jLZkaKDi924gQ9IQ_40_2">1,038,439</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_pmOyulTWqE6L_gloNfTzaw_40_4">999,819</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:72.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" id="Tc_iwlHt0I4xUW4vPJSUaFKLA_41_2">1,246,736</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" id="Tc_ydBZA7crYk227COlZQdQ0Q_41_4">1,185,431</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">The accompanying notes are an integral part of these unaudited condensed consolidated financial statements.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:6pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">43</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_88118a46_8d4a_4511_bdaa_599c4a3746cf"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">THE DESCARTES SYSTEMS GROUP&#xA0;INC.</b></p><a id="CONDENSEDCONSOLIDATEDSTATEMENTSOFOPERATI"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';">(US DOLLARS IN THOUSANDS, EXCEPT PER SHARE AND WEIGHTED AVERAGE SHARE AMOUNTS; US GAAP; UNAUDITED)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><a id="_41d99a8b_d3e4_4bcb_bf00_e45d2ca9af6a"></a><a id="Tc_NdvjHODpNUKJ0723UgMIxA_1_2"></a><a id="Tc_oEDJO1D4Gka1TXBGnr7F7g_1_6"></a><a id="Tc_gNvrVpcyJEKkJ3_mLLm3Hw_2_2"></a><a id="Tc_iIy4OVN-zUStvTYYusY9aw_2_4"></a><a id="Tc_a1ABl0t_VEmU9QqKSR0SkQ_2_6"></a><a id="Tc_wVL859VzbEi1fcJTAUvMew_2_8"></a><a id="Tc_E_AlZmejWkqdr4ujp9ASZg_3_2"></a><a id="Tc_jrJmUE1SyUK5gbtmLZ1org_3_4"></a><a id="Tc_KO5wNQqjh0GF1rnIMnrsKA_3_6"></a><a id="Tc_yoTyljre_0OxAgJC0UwZuA_3_8"></a><a id="Tc_gU1nFWwPREirvcHi2TAzAA_5_0"></a><a id="Tc_ndqGkGon3kyBhRYk4lYz-w_6_0"></a><a id="Tc_sUjC9T1C7UOQezKclhtPfg_7_0"></a><a id="Tc_kkCTz2kA10evliWPzkXC1w_8_0"></a><a id="Tc_r74-GZCGEUqwG38CCdNjrA_9_0"></a><a id="Tc_9OxpavP3jUiU70p5pCorVQ_10_0"></a><a id="Tc_XX_af-hSqkqNQjMWI4vJvw_11_0"></a><a id="Tc_C4TIn8DZBEOGrQPpGMHCuw_12_0"></a><a id="Tc_Pb_LYTx3Z06tMyxzhlWTTQ_13_0"></a><a id="Tc_OUU9IHglUkS4yVrvQ7-tAg_15_0"></a><a id="Tc_n8_yknuPCEyR9RG-Fr9KaA_16_0"></a><a id="Tc_rd69pNCEYk2raazPK0jfdA_17_0"></a><a id="Tc_VOXFXcXRK0WFBNJ-zBMHWg_18_0"></a><a id="Tc_L3D6NmS_A0-D6qLwBcwF7g_19_0"></a><a id="Tc_ZdfUG8fOZEici_V5cnEXAA_20_0"></a><a id="Tc_a1RjgVikaEO4Br50Pc9waA_21_0"></a><a id="Tc_xF4V9JegBEygU41ONrBPcw_23_0"></a><a id="Tc_976H9xrLR0evJ0GYjYcCmQ_24_0"></a><a id="Tc_y_TVqx2-cUqr_EI8elTPcA_25_0"></a><a id="Tc_ELgyMSb-FUSH9hloF2AlUg_26_0"></a><a id="Tc_-ALOp2mBLEiQiFpnn6nHwQ_27_0"></a><a id="Tc_xNa0njrqVUal6rq-SqMiBQ_28_0"></a><a id="Tc_zxG6GDrm4E6GgUHVePb2Sg_29_0"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#xA0;Months&#xA0;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">REVENUES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_PutKDmASgUa3MC10ifqWzQ_5_2">123,011</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_3eixhYtHXUaepiif8TPMuQ_5_4">104,570</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_nJ1e2mr390iIltjDIFT45w_5_6">239,406</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_OEP_R9mso0KWbsU9wv6NVQ_5_8">203,408</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">COST OF REVENUES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="Tc_5sUcLmltvk-82m8uNPTKnw_6_2">28,919</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="Tc_jQa-OFbo_k2VqXlZjF43vA_6_4">25,470</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="Tc__3LHK3eSJEqDf-ZdWqCD6A_6_6">56,742</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" id="Tc_i08Lf8Q73k-n2fBZVN8tHw_6_8">49,319</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">GROSS MARGIN</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_iYMlcmBbZUqIIoP4x6fJWQ_7_2">94,092</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_K5db3-S3zUeQ84oK92KigQ_7_4">79,100</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_uRk1e71RUEuy2PeRwUY3Xg_7_6">182,664</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GrossProfit" scale="3" id="Tc_wJUdRw0w3UiYECPLnInOsA_7_8">154,089</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">EXPENSES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Sales and marketing</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingAndMarketingExpense" scale="3" id="Tc_3MxudgqNmkqZxx08PtXUvA_9_2">14,315</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingAndMarketingExpense" scale="3" id="Tc_gWqoJBeHskm8pPgMj9g0BA_9_4">11,328</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingAndMarketingExpense" scale="3" id="Tc_NEkQhwvtYEmQ-t72G9sSbA_9_6">27,551</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:SellingAndMarketingExpense" scale="3" id="Tc_v0PmF2JdO06zwQZ_IN51SQ_9_8">22,339</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Research and development</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="Tc_gd_PArsl_UWBSArM8wWOSg_10_2">18,155</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="Tc_eDspB-z5M0eEEfJOeQ9DrA_10_4">15,473</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="Tc_lph7uXaf9UKqM1O9YuxtVQ_10_6">34,724</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ResearchAndDevelopmentExpense" scale="3" id="Tc_pzR-Vy6cJkCmIvzfpArPgQ_10_8">30,692</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">General and administrative</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GeneralAndAdministrativeExpense" scale="3" id="Tc_YGlFzkfUBEGwSLxbZ17iXQ_11_2">12,700</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GeneralAndAdministrativeExpense" scale="3" id="Tc_9KDZFfMcGkOtx_EvHPXwEQ_11_4">10,855</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GeneralAndAdministrativeExpense" scale="3" id="Tc_4ijqOh3akECxoYfgDHeJag_11_6">24,342</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GeneralAndAdministrativeExpense" scale="3" id="Tc_11cAeXUGGE-p_sCUWqBsuQ_11_8">21,861</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Other charges (Note 20)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_TvJzpjqlzkeNEjfKXuL9ng_12_2">1,289</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_a1joyIx6f0Gl9fchV7FXFg_12_4">414</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_hbwCKj06XEGCFbqECLQRxQ_12_6">2,771</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_mpgkStgWVECFXAlq9TON6g_12_8">934</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Amortization of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc__QIQrJ-MWUyNpiA_hwtuQw_13_2">16,086</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_MsWR8cu9qU6M1TKu4iMnRw_13_4">14,911</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_A4QlIoqEFE2LhGM4FE1XaQ_13_6">31,134</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_BOJdUW0lP0KD5_U6smrxVg_13_8">28,746</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingExpenses" scale="3" id="Tc_LiasRpk2U0ShKc-qeSJpTw_14_2">62,545</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingExpenses" scale="3" id="Tc_UFZjnILehUmr4DYQSFNCyw_14_4">52,981</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingExpenses" scale="3" id="Tc_Re9hTBlX6EWdp9rxNk4BCA_14_6">120,522</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingExpenses" scale="3" id="Tc_8zwpf9L4h06mRtOKmYNX2w_14_8">104,572</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">INCOME FROM OPERATIONS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_62CWW3Ch6ECgoXa3ZFA56A_15_2">31,547</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_fSjg7Q3rOkKlbvIeXbMOwQ_15_4">26,119</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_WbCxRanK-EKMiXSOOF17qQ_15_6">62,142</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingIncomeLoss" scale="3" id="Tc_pR4Ln7lL3Eavt8Z5orVJvA_15_8">49,517</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">INTEREST EXPENSE</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_ZjbfzeInwEWEBTxVb6oKZA_16_2">284</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_rohuX_XATkKDH_gqjIQW6g_16_4">272</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_N-8OqKp-9kSdIhW-EV8Czg_16_6">562</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InterestExpense" scale="3" id="Tc_ACXtAA0GM0G35whn0TssGw_16_8">549</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">INVESTMENT INCOME</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeNet" scale="3" id="Tc_aCiUMCDGoUeCbHLbaJbGhw_17_2">461</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeNet" scale="3" id="Tc_ZzMukIsvKEWphKSpSgxKhA_17_4">61</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeNet" scale="3" id="Tc_zNHYqkiJ2kCC2l6bLTQKFw_17_6">614</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:InvestmentIncomeNet" scale="3" id="Tc_YlglIoGasEW4-oN25xlB7w_17_8">124</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">INCOME BEFORE INCOME TAXES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_WE4x7VxrgU-ot6EFeSp1xw_18_2">31,724</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_B2XmAtdz80Kb7arL5JMq_A_18_4">25,908</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_opcyr2qJ80eRrTV2wJEDTA_18_6">62,194</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" scale="3" id="Tc_N_CbdIVUeEi7EQ_DNbxH2A_18_8">49,092</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">INCOME TAX EXPENSE (RECOVERY) </b><span style="font-family:'Verdana';">(Note 18)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_cgf6XFjNyUqyXLuAiVyXnw_20_2">7,498</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_mtFoLixbCEGFxv52PStKXQ_20_4">4,732</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_MXgF8AyDIUuJ3Zi1m29f1Q_20_6">12,339</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="Tc_mA6UZ22phE6r0yZXx2lhzA_20_8">6,866</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_3A9PJzOda0W1ewjvQaoIFA_21_2">1,324</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_wg7gGIPF0UC45zKoyLeTvg_21_4">2,000</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_L1ggsjgZSkyVSvjdBKp0eQ_21_6">3,838</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_9vQsbqB5r0i1qThN8mB0Cg_21_8">629</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_jFshhYo-3UaIF1f5tvoIYA_22_2">8,822</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc__okzoQUNG0e3PGwm6iG4QQ_22_4">2,732</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_lqt4yN84GkWSJAiVzb6sRg_22_6">16,177</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="Tc_3nI2Rdz-Ckqb5Bp0yp9tZQ_22_8">7,495</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">NET INCOME</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_8R00tTTPskmbEY_FdH6a3w_23_2">22,902</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_6LSlCCs_VkSEWVxdQ7YLSA_23_4">23,176</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_Q0ndpoVHykeky2QoRsKwJA_23_6">46,017</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc__bigc8_T40WVGFULR8HhFw_23_8">41,597</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">EARNINGS PER SHARE </b><span style="font-family:'Verdana';">(Note 16)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_30slIQ5RR0eYHr2exhX_1g_25_2">0.27</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_7faJlF-sfUaL6yNaAfmrFw_25_4">0.27</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_a58Fj4ltPkeJbeTPGioSkQ_25_6">0.54</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_wQFhX2orF06Ig2TeJ29xjQ_25_8">0.49</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_UVeRepBee0arT_7V1UyNgQ_26_2">0.27</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_m3Uk_QJ3-kCkFWS9Pfvs_g_26_4">0.27</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_hHmo3N2CcUqYBF3vqPPAag_26_6">0.53</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_6EGzxQ_Uykioto7nJQZZcg_26_8">0.48</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_9JveMkDiMUm7tiGxeTNdqA_28_2">84,783</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_hCqle1xUrkiVz0_4LJoa7g_28_4">84,566</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_3VxW8cMGx02a80jTDHrn4w_28_6">84,774</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_Ge456PhVhEu2IL18bXj1Xw_28_8">84,534</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_vEzym01rREy6S6-YdO6ltA_29_2">86,338</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_sFtXWfhZcUOLtjVTty4qzQ_29_4">86,128</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_Q4qHxH8wT0CSMLLBZJxlmQ_29_6">86,344</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_g3Da5rCP90i0DziNti3BLA_29_8">86,066</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">The accompanying notes are an integral part of these unaudited condensed consolidated financial statements.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">44</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_30472383_eed2_4b56_88e3_21a266068866"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">THE DESCARTES SYSTEMS GROUP&#xA0;INC.</b></p><a id="CONDENSEDCONSOLIDATEDSTATEMENTSOFCOMPREH"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';">(US DOLLARS IN THOUSANDS; US GAAP; UNAUDITED)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><a id="_4f94cb0d_5cfd_40c7_a271_f2c357bb7122"></a><a id="Tc_jWC4Talob0KKefgi7HTvAw_1_2"></a><a id="Tc_3V11Anmov02NHyyYQNZgvQ_1_6"></a><a id="Tc_4tW0sqA0fkO6wVuJERTsXA_2_2"></a><a id="Tc_zz1V0Vk6MUKcyA6sfoR-Lg_2_4"></a><a id="Tc_EEYHppZliUG3sdzy7kLW_Q_2_6"></a><a id="Tc_YhW6exasH0S3iAkWZRb2ow_2_8"></a><a id="Tc_z_Tgw5VRYkyMY0FvjSTbZg_3_2"></a><a id="Tc_P4xWk8_Y2UCWpcMDHbzo0A_3_4"></a><a id="Tc_wRh0H4GNz0KRDifrUpT8Yw_3_6"></a><a id="Tc_lZ3nIdcirkC8Un7KccTmrQ_3_8"></a><a id="Tc_y-wRpMjRUUmsxLwd-IVjVg_4_0"></a><a id="Tc_t-nxLvdKsEOj_XqnxqyV5w_5_0"></a><a id="Tc_97yk9V_TuU-N7zvrK3Rngw_6_0"></a><a id="Tc_Wb-B6YyFjUqUfmOZ5P4xzw_7_0"></a><a id="Tc_EV3JTFoug0WYqFGHvPPkJQ_8_0"></a><a id="Tc_jnC9sifWGkya4NwiQmDSzA_9_0"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.93%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three Months Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.98%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Comprehensive income</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net Income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_2qk-alwAvEuMGFcb3-DX1g_5_2">22,902</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_psnQRjOX4UCgNd3TWw7CVQ_5_4">23,176</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_l-zbE0_a6U2jLuGsEykdSQ_5_6">46,017</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_188jhCi5XU6OpnDOnK2K-A_5_8">41,597</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:56.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other comprehensive income (loss):</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Foreign currency translation adjustment, net of income tax expense (recovery) of (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" scale="3" id="Narr_QeAYSGtvxk6L4C5RP43KoA">88</ix:nonFraction></span><span style="font-family:'Verdana';">) and (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" scale="3" id="Narr_AMKzks7e6kqa5KJ1SghoOA">208</ix:nonFraction></span><span style="font-family:'Verdana';">) for the three and six month periods ended July 31, 2022 ((</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" scale="3" id="Narr_bjmIhgQzR0-pvJ6gCeI_hA">1</ix:nonFraction></span><span style="font-family:'Verdana';">) and (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" scale="3" id="Narr_QUjfF5nwXkGPo50IXcL7PA">186</ix:nonFraction></span><span style="font-family:'Verdana';">) for the same periods in fiscal 2022)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" sign="-" scale="3" id="Tc_MtBkzqlz2U2k_K9HbGNr9w_7_2">2,802</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" sign="-" scale="3" id="Tc_Xp2wvrDcCE6YltWZho3HcQ_7_4">7,400</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" sign="-" scale="3" id="Tc_sed19XOBi02KUm-TM578XQ_7_6">14,420</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" scale="3" id="Tc_b8dsMVgYS0er7KqSaqU1Dw_7_8">3,482</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:56.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Total other comprehensive income (loss)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTax" sign="-" scale="3" id="Tc_PMBGYj5jjk6YxVC3Ly4NQg_8_2">2,802</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTax" sign="-" scale="3" id="Tc_DqS2IL2RjUapp8MT5arByg_8_4">7,400</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTax" sign="-" scale="3" id="Tc_ZwsQ7sRXwEG6BRa-Ri6gvw_8_6">14,420</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTax" scale="3" id="Tc_XJOMelFfDkOmOpyl3750Pw_8_8">3,482</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:56.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">COMPREHENSIVE INCOME</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="Tc_D_5v9zinqE6alrwD_kM2eQ_9_2">20,100</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="Tc_0mTgQu77VkW0Z9UlCGfLSQ_9_4">15,776</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="Tc_eJKkGlZPPU6kjW5q_u20kg_9_6">31,597</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" id="Tc_asvj1S6AkkWxjZs3SoQGSQ_9_8">45,079</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">The accompanying notes are an integral part of these unaudited condensed consolidated financial statements.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">45</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_d154e729_3642_4aeb_9c96_29b10ded65da"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">THE DESCARTES SYSTEMS GROUP&#xA0;INC.</b></p><a id="CONDENSEDCONSOLIDATEDSTATEMENTSOFSHAREHO"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#x2019; EQUITY</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';">(US DOLLARS IN THOUSANDS; US GAAP; UNAUDITED)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="_73d91ee2_a4ca_4703_b88f_147ca3cfe6a1"></a><a id="Tc_2fjQ1qNoU0K1bdzJM-beTA_1_2"></a><a id="Tc_S_GUvRCdFUCzYnfj7BHhzg_1_6"></a><a id="Tc_SV25j-6RfkSo-gAmHurkLw_2_2"></a><a id="Tc_mk47rtyJMki2NmQxVvHmNQ_2_4"></a><a id="Tc_9iAzIXNAFEufgyAJUCk5IA_2_6"></a><a id="Tc_2cT2YBoIaEGZ-KyjHaJtBg_2_8"></a><a id="Tc_lSg7ynd9X0KoACwc3LdaYA_3_2"></a><a id="Tc_38oXz61q-E6h9adEPbl14A_3_4"></a><a id="Tc_hJwBVSEeA0CxmcwuQ7754Q_3_6"></a><a id="Tc_ZVuSL8qL9ket8zZel_02jw_3_8"></a><a id="Tc_zVPU9wCT2Uyk_fGeo8IFWw_5_0"></a><a id="Tc_DqWWYN0WVEW9Zmy7zg2Hcg_6_0"></a><a id="Tc_N7-QaTvrl02oA29B-iwxJA_7_0"></a><a id="Tc_SlcJgWEX50uBU2ppRtcgVw_8_0"></a><a id="Tc_qykHsZhfnkKd3v0OOlv_Wg_10_0"></a><a id="Tc_giWZfet07E6ZkJLFEEMGlw_11_0"></a><a id="Tc_iO9nfX2Sh0yT8iOUyhMdLg_12_0"></a><a id="Tc_dbB9Ha1DL0mjQzpWMkPn3Q_13_0"></a><a id="Tc_5-M-433-c0S1iBzK5oTECQ_14_0"></a><a id="Tc__cjZG2_k_kuMDrEQqDBbIQ_16_0"></a><a id="Tc_4_FaFRP2pUeG6qRvKurCNA_17_0"></a><a id="Tc_TS9A7AgFj0SRzzC0XajRXQ_18_0"></a><a id="Tc_-L0-V426AEyMKNRQOa3i2g_19_0"></a><a id="Tc_AxFQarqGEU-HfFty6tL0NA_21_0"></a><a id="Tc_pGySC43DHEK1wQrIt9du5A_22_0"></a><a id="Tc_Suda8MK1SkSHifT4o_9Szw_23_0"></a><a id="Tc_x7YMIW2U3Eekt6vS7kzl1w_24_0"></a><a id="Tc_rKR2vq0udUSU9bm222Xrvw_26_0"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:23.5%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#xA0;Months&#xA0;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:23.5%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Common shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_SROVFoXSFUi2HB_eu2FtaQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_H3uVCWzhREaZj42YIDeg7g_6_2">536,842</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_jAjcsK4LGUCwDLYGQcPBLw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_FHKbv1Zoi02mxVU_OcPi5Q_6_4">532,634</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_G2YKQCozLkiqmNfVx3GYzw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_AJkZr-wGbEGFkgZ0VKWTew_6_6">536,297</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_yTpa1AUx-Eyj5brPEZ29AQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_4lSvfWZcDkCJmbhyH-N00g_6_8">531,825</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Stock options and share units exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_vmTAj8vqTEWX4BNqKY-ywA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_8vZ_ndRmhUaLbOx1JD7vfw_7_2">161</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_5dtDoUFn90Cf1Uz3aQBxUQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_D0qisBmHgkmd6APeWO6gsQ_7_4">1,576</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_9NbrpyJUbUixEiZw2CSJLA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_SggFseDWVkSCCzt0HjNxrA_7_6">706</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_IUSMXES3e0G98_Nl42VxJQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="Tc_jsKlGsGTx0WQMyY5oz6gWA_7_8">2,385</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_dJ4ciwEjBEajbrBRy0hwwA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_001DU85VKkKiDFXrDVaj5Q_8_2">537,003</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_7kER6yGQ5UixQs_pGKDBxA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_umQ3i_yg3E6VBzKB0lTdxw_8_4">534,210</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_dJ4ciwEjBEajbrBRy0hwwA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_G6mfHZm9iEKjgEFYaAr7Fw_8_6">537,003</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_7kER6yGQ5UixQs_pGKDBxA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_MsOQ8TiUTEm-cv1DA4HigQ_8_8">534,210</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Additional paid-in capital</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_AFLvLrkv7E-PjtjbQbdT6g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_3sytW5AjUUm2eOs3iHFPbw_11_2">475,934</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_aef84jkEt0a10HoxjWSO9A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_lKxkBbZP0U2olR7PrTwzGQ_11_4">466,093</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_szPTAZYeFU-GSSCfwN7xHg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_GM8R96j-dEWCOH0AL66jTA_11_6">473,303</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_9StPdzlsc06aOHVHesVO3g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_mIUb3DPiW0aHPFsRIQpIYA_11_8">464,102</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Stock-based compensation expense (Note 17)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_2WWtkH9yn0ecjKc9l7BKEw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_8aYCohtYbE6tl1sCUnK7sA_12_2">3,736</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_P_PkBBpCwku3mwVmPuuTpg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_TOeN_lZRwkGqPCxTMeSGKw_12_4">3,015</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_SOgjxiN7tk2dm_9zqR5blA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_k7hn66Cq-UWOd_G4GgSkPw_12_6">6,523</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_oKsrcXb9fEOJ4N6aQC__mA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" id="Tc_tKD72dHnjE23nVQGEuE6oQ_12_8">5,167</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Stock options and share units exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_2WWtkH9yn0ecjKc9l7BKEw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_BrQuaC2QAE2A76lW33V1qA_13_2">50</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_P_PkBBpCwku3mwVmPuuTpg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_5VGfNOMfS0WpkBD7lsfbRg_13_4">727</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_SOgjxiN7tk2dm_9zqR5blA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_ObhVuuQ8kkmJBpckFpsK5w_13_6">206</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_oKsrcXb9fEOJ4N6aQC__mA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" sign="-" scale="3" id="Tc_U85vxzi4EUih_zj6wcvKrA_13_8">888</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_7T2YAquFC0aZRLJzcvYVfw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_UERD8F_T502oHMct7__oLg_14_2">479,620</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_RfDICflvCUCMrKJONVf4OQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_km_kx2NyhEC3tbBLyAFTog_14_4">468,381</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_7T2YAquFC0aZRLJzcvYVfw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_SURH9djGlUu6gtRFvuVDNQ_14_6">479,620</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_RfDICflvCUCMrKJONVf4OQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_1pHgxF978UqWrDYesbjxAw_14_8">468,381</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Accumulated other comprehensive income (loss)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_I6V1RBq5OEi2iCQW2H25fQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_a52rnySd5kmhkFrmbecBjA_17_2">24,011</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_lMSiCLkpYkycKtX6lAIkdA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_x_8Tkp_HTUixr7Th_SpUPQ_17_4">9,693</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_lidI5ZLt1UubjTcc2dHpNA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_JJnIcr4V506lIul-rREGAA_17_6">12,393</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_n-ruEF-ZQkuvOR7k_4ortg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_012yvN_uakyfIkIcjJAOZg_17_8">1,189</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other comprehensive income (loss), net of income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_QT0R4zJ-lEe-crbpb0CUoA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" sign="-" scale="3" id="Tc_LY54SMnus06YE4kOapZi0A_18_2">2,802</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_ndkrK77qHE2lHkfXCtbMXQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" sign="-" scale="3" id="Tc_8kpgrQg4G0CIlOetFPJtmQ_18_4">7,400</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_mqWjbqsK1kmwYw887dl3kQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" sign="-" scale="3" id="Tc_OCwItpWh6UCQ7rRastz91A_18_6">14,420</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_ixS2ZjsVFkuqe5c-WhJ-qQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" id="Tc_IsYBxTcAsEmzrqWvb-oboQ_18_8">3,482</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_w8Otneg3fkeoXZfNKS70XQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_DzvVE6_-w0uJ8jTZgFAVTA_19_2">26,813</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_H6X6jumyKUq_I2OeW1jgFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_BXQzwJB190amH7lBSmqEIg_19_4">2,293</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_w8Otneg3fkeoXZfNKS70XQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_sp-FMoU1Xkq4iIMGbkI0dQ_19_6">26,813</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_H6X6jumyKUq_I2OeW1jgFQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_6cPaBZDcD0251Tn52IoL2g_19_8">2,293</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Retained earnings (accumulated deficit)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_pUGHBNsNok6WZDQYnp7-0w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_8z7c-3zISkaEQPcRfnMAgg_22_2">25,727</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xEMMXMJ2wEmS2XKAjknwPQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_YZ5djHTFTE20B51NZIKu3g_22_4">65,249</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_vxFFOi_UTUm97LTRGmZo_Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_TWH8-bDrBkygw89jL1OXOg_22_6">2,612</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_zsQ_iyoOHUGLl26dG-RnNw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_Tx_EH77YWUuM4gehn8Wl3g_22_8">83,670</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_ePDREw-hwEOqAl9sq5VXGg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc__OgQdaE2s0SSiN8PQb7UHA_23_2">22,902</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_QrHwPtBCn0G6rm5sPolb8Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_BrP8DzwiR0WH-qgQ-JzNaQ_23_4">23,176</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_uxajUT6_xEqICQOm5s4x-g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_oo61i01bJky7K3C6Yqlakw_23_6">46,017</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_8eb08UTV2E6dj0RcdWKePw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_MgP8Q7gvYkOQbPjEbV2SwQ_23_8">41,597</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_0vSutx5O3E2OTQBYu6pIOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_A6JeG2TI3UG7gAlYvWOHDA_24_2">48,629</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_XRgs6qBC3EydW7DXSKiU-Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_QylmLs0ee06o-9mz0CDrVw_24_4">42,073</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_0vSutx5O3E2OTQBYu6pIOQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_qP-qqecQaEeAoXglpV5YHw_24_6">48,629</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_XRgs6qBC3EydW7DXSKiU-Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" sign="-" scale="3" id="Tc_LflBkjwYzkatxVqO74BbWA_24_8">42,073</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total Shareholders&#x2019; Equity</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_AUljXYQ2pkKBG5jCjf3hDw_26_2">1,038,439</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2021_4qpvWrhC5keRXw9vf1TjjA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_nRB8bFjZRUy_8s-6suNb8Q_26_4">962,811</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_AnxQWEYUiUOfbB3IePG7Gg_26_6">1,038,439</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2021_4qpvWrhC5keRXw9vf1TjjA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:StockholdersEquity" scale="3" id="Tc_Rd7ZrQcRkE-4IFNAspMa2g_26_8">962,811</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">The accompanying notes are an integral part of these unaudited condensed consolidated financial statements.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">46</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_63d6b9ba_fc89_4a63_b094_e0d31f335106"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">THE DESCARTES SYSTEMS GROUP&#xA0;INC.</b></p><a id="CONDENSEDCONSOLIDATEDSTATEMENTSOFCASHFLO"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';">(US DOLLARS IN THOUSANDS; US GAAP; UNAUDITED)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="_7c2f6db8_979f_4ec6_8c24_71c50ebb7e3f"></a><a id="Tc_4WkLohNguUmWt3KRDVIoEg_1_2"></a><a id="Tc_e7vWiwTiu0-cwQjYrPUgAA_1_6"></a><a id="Tc_jLh9uqtO6EWR8k5Xqf0DhA_2_2"></a><a id="Tc_lzDoQ4evdkKadHQb07RhSA_2_4"></a><a id="Tc_n2MWFuXaXkqROFAtSIaeTg_2_6"></a><a id="Tc_RnsSO6fH_kWitbQVgJpUkA_2_8"></a><a id="Tc_NqU7B1dde0WyBWVCrxicKg_3_2"></a><a id="Tc_lxmsg485LkuHJAeAbYXpng_3_4"></a><a id="Tc_-6AMfDvnPUu5XLy2cC__tw_3_6"></a><a id="Tc_cZ_wjRW9-0OEFI6JkNN12g_3_8"></a><a id="Tc_FddYFd9xcUqdFt0IsHatpg_4_0"></a><a id="Tc_e3-0Ef56rEmfVq3KuBSObA_5_0"></a><a id="Tc_CW33YDpgR0-x6GbkPmR9bw_6_0"></a><a id="Tc_5m-txRn6xEmgdNF2BlgYKQ_7_0"></a><a id="Tc_jXYOEoCTmkiW70AJUWP5Fg_8_0"></a><a id="Tc_SAPbqBKofU6SxsUgpAorlw_9_0"></a><a id="Tc_vjpz-LtqAEaVabfIE5o0RA_10_0"></a><a id="Tc_gATbhV9vTEGuul_TgbXB_Q_11_0"></a><a id="Tc_WgnHGYVerUq_y2WNiTlQJQ_12_0"></a><a id="Tc_ur4qbrDmRUeFtPB_xhAS8w_13_0"></a><a id="Tc_p1mg8AlbcEy6thxvy4-idQ_14_0"></a><a id="Tc_RMLwkD9Uz0K-A9d2GOwh5Q_15_0"></a><a id="Tc_v2yqTv8GW0uy3BJeAQWMDA_16_0"></a><a id="Tc_BWj7w7ToJUiX9L0jqNjFSQ_17_0"></a><a id="Tc_jIXtJJ-zkkmMk1q4u91b0A_18_0"></a><a id="Tc_56Ll79N0AkKPBGnSGJvf3g_19_0"></a><a id="Tc_N44XVx8OKU-piAaDBo-7Tg_20_0"></a><a id="Tc_1rdT14qhXkuRLirwVBVH1Q_21_0"></a><a id="Tc_8_SME1irI0q6EQJlx6nBzQ_22_0"></a><a id="Tc_Oap-RBaZJEO3WXDjERZLhg_23_0"></a><a id="Tc_H15k_cIWIE2wmq-mr2PKnw_24_0"></a><a id="Tc_2qCWNZHY-0GOceosA8lysg_25_0"></a><a id="Tc_iq5L1eVDekqVPtl_JT_bxA_26_0"></a><a id="Tc_7zYjcs2t3k2Me60laRd78w_27_0"></a><a id="Tc_018ZV9180EGfkYgdS6a30g_28_0"></a><a id="Tc_zh-SElED7E-07eTnV8WUSg_29_0"></a><a id="Tc_Ph6qsLs-RU2U1_3YPrEV2Q_29_2"></a><a id="Tc_xtdg04T0DkC_RDyTacyqmg_29_4"></a><a id="Tc_j4W92b_x4kC-wfwcmc5hsQ_29_6"></a><a id="Tc_N4MhLlOo6UuMZf-1gD5WhA_29_8"></a><a id="Tc_MpHT6fVe20KDYpC9L6J07w_30_0"></a><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#xA0;Months&#xA0;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:22.52%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">OPERATING ACTIVITIES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_H-sSaHqUwEGh8M7UfF2GiA_5_2">22,902</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_7B-d3hSo7keefce-n3VVgQ_5_4">23,176</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_TMNyoDEbo0u85-mNt2GLVg_5_6">46,017</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_jyLeFzS6TEqUtUtdPMx4kA_5_8">41,597</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Adjustments to reconcile net income to cash provided by operating activities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Depreciation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_OOp-Fi7Uok-TYTHqXx8kVg_7_2">1,301</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_zLxBnNXVtEuT82fqryDDtg_7_4">1,287</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_qK6BCjX83UORRP8coOZrkw_7_6">2,546</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Depreciation" scale="3" id="Tc_tXhPA7lPhU-RV0UkoZiAbw_7_8">2,502</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Amortization of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_3ETaOC5BK0-6hWOb0Scezw_8_2">16,086</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_BCxSEe4yrUSz9Kdgzs0lSw_8_4">14,911</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_iCfNQRLFhUK2DX7iIls31w_8_6">31,134</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" id="Tc_oA673KjsR0WCW7z3x__TRw_8_8">28,746</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Stock-based compensation expense (Note 17)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_ZLHy5npWPku993lEnSf57A_9_2">3,736</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_8XXDv1X_wEOdeqqbj4TUgw_9_4">3,015</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_iAERp19KT0qZ3uvBgY71Gg_9_6">6,523</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensation" scale="3" id="Tc_6WZGZRSTm0SPx5NZvBqD1Q_9_8">5,167</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other non-cash operating activities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNoncashIncomeExpense" sign="-" scale="3" id="Tc_i6_6ABTcvUOlsCUOrJCyIg_10_2">68</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNoncashIncomeExpense" sign="-" scale="3" id="Tc_Vmf3uY6vfU6xTuqafClIWA_10_4">281</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNoncashIncomeExpense" sign="-" scale="3" id="Tc_pi3o77cy_UapkF0BjJbrCQ_10_6">51</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherNoncashIncomeExpense" sign="-" scale="3" id="Tc_llYUUawENkydEx8m6Dbapg_10_8">557</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Deferred tax (recovery) expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_No36mgjzvUGa8UGd7QLP-A_11_2">1,324</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" sign="-" scale="3" id="Tc_zJ3ljkIhJkO1YB3yYcASGg_11_4">2,000</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_bYl3PHx-nE6cqB9JrXQSCw_11_6">3,838</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="Tc_2WiFlyFaK0mvzir85kOTjQ_11_8">629</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Changes in operating assets and liabilities (Note 21)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_kL7BQQD6KEaz70fUHT5D9A_12_2">982</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_8_1Jea9M40uvJHwquP5OSQ_12_4">5,704</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_MiUUYs_gFESjGnnHAPIbKA_12_6">722</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_J0Z9XFe1dUuuqnyt65Dsww_12_8">8,082</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cash provided by operating activities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_E26-99Chrk64kJNfIvfz9w_13_2">46,399</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_IXMMjfqZQ0SE33TqjRx_Eg_13_4">46,374</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_Ql6cHCHhI0G-P3MtmcXxMw_13_6">90,831</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" id="Tc_G9cTIXscgE-ui4HmtpzqSg_13_8">87,280</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">INVESTING ACTIVITIES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Additions to property and equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_NIT5SCYiiU6NcVF6NaUfOA_15_2">1,786</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_pdk3mYiCa0GKU9pC7pD-VQ_15_4">941</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_Asauexwd9Ei6eyqeDDTCKw_15_6">3,422</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" id="Tc_g2IE9ba82EKMOhqs-216kg_15_8">2,596</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of subsidiaries, net of cash acquired (Note 3)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_jBl-E1JEJEOvkg3-wKmkyw_16_2">61,096</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_Xo74umdTbUWpQon4uTSxeQ_16_4">54,418</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_XWdgUX_jz0GSqe9nPoxeEw_16_6">103,988</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_F6yImr7FUk-aZrCf8nsz8w_16_8">90,278</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cash used in investing activities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_mxXjYHqWB0mqlRuJh7r7Ww_17_2">62,882</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_B03Qecu3eE2rZAqNn6lnhw_17_4">55,359</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_WcOXLYyTykaijp_sFNQNOw_17_6">107,410</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" sign="-" scale="3" id="Tc_cwZ2trLSREKk0bqwRFASwA_17_8">92,874</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">FINANCING ACTIVITIES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Credit facility and other debt repayments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:zerodash" name="us-gaap:RepaymentsOfDebt" scale="3" id="Tc_p706hEXvCEChshEcjYnYpg_19_2">&#x2014;</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfDebt" scale="3" id="Tc_mQlhhJsDfkSBlJ-73d0oIg_19_4">1,068</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:zerodash" name="us-gaap:RepaymentsOfDebt" scale="3" id="Tc_DPYSIGsAD0CvPTUCcSWW0A_19_6">&#x2014;</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RepaymentsOfDebt" scale="3" id="Tc_ULbPwReM-Eu4ORCd9eNV9w_19_8">1,068</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Payment of debt issuance costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:zerodash" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" id="Tc_Czg4bn8aD0KvAU-Dce7Bzg_20_2">&#x2014;</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:zerodash" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" id="Tc_jw0KAW0TTUax9uU4FweLBw_20_4">&#x2014;</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" id="Tc_WIYtSiGR8kKHN4KoWvRjZQ_20_6">66</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" id="Tc_DZ8I9cZSQUiwYdqm7dkBKg_20_8">60</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Issuance of common shares for cash, net of issuance costs (Note 15)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromIssuanceOfCommonStock" scale="3" id="Tc_c8mlwpPdO0aj5ziVS7IYpA_21_2">111</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromIssuanceOfCommonStock" scale="3" id="Tc_U2CoDDF_Wk-OdrfMpOD4gw_21_4">850</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromIssuanceOfCommonStock" scale="3" id="Tc_cdjPIifpe02G23OPmaeeXg_21_6">499</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromIssuanceOfCommonStock" scale="3" id="Tc_nNm8CQggxECCf7ahAKPpFw_21_8">1,497</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Payment of contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="Tc_egvDUHKLVkioZu6GIph3pA_22_2">5,215</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:zerodash" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="Tc_A0Xg4DtZ3kqa7aLUdE-wAg_22_4">&#x2014;</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="Tc_aoxHCPkW0EOlpDNNpoOAqw_22_6">5,215</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:zerodash" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" scale="3" id="Tc_e7CK-EX-t0K3vrZGnydEMg_22_8">&#x2014;</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cash (used in) provided by financing activities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" sign="-" scale="3" id="Tc__xnY0JM3GU-W_SaX4jxztA_23_2">5,104</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" sign="-" scale="3" id="Tc_I2a9xH9CVUiyfBKhPiO6ow_23_4">218</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" sign="-" scale="3" id="Tc_KJBKTuWP-E-0WcOzsUiRLw_23_6">4,782</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" scale="3" id="Tc_fcS6z1Lpvkij3OvVTinByg_23_8">369</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Effect of foreign exchange rate changes on cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" sign="-" scale="3" id="Tc_ifPFtJ52IkSBLWwxngMtyQ_24_2">1,162</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" sign="-" scale="3" id="Tc_3BkYCeUK60Wqgw9CYGRbQQ_24_4">576</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" sign="-" scale="3" id="Tc_5p0bdqwNkEy9aBXAQD23Bg_24_6">3,046</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" sign="-" scale="3" id="Tc_FoPaapAdZE-IfUR3CQsh4g_24_8">78</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Decrease in cash</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" sign="-" scale="3" id="Tc_KLc3XZsS8kK02_qbr9fiRQ_25_2">22,749</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" sign="-" scale="3" id="Tc__Nx699LAvk6n7Av4UwA7wA_25_4">9,779</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" sign="-" scale="3" id="Tc_Qd6lJHTooEuEPH0LNAfC9Q_25_6">24,407</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" sign="-" scale="3" id="Tc_efCiyD5JX0e3788tmscDeQ_25_8">5,303</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Cash, beginning of period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_4_30_2022_zCu9-8V-R0mFcH6RwHC_bg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_Dwdy1X5bOUqe23bx5Q8QMw_26_2">211,779</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_4_30_2021_n_mylqxJ8kqkaZJffCncEg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_9fD5fJN0REiHOFMK_zI0PQ_26_4">138,137</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_lvLMwl5oL0udRkE2X9NoyA_26_6">213,437</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2021__kQXoKs9nka2lPH4vSYNEQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_ieQmMURUqkqx2mac486YHA_26_8">133,661</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Cash, end of period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_d5Q5ew4IgUa3kNUIsE-Qkg_27_2">189,030</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2021_4qpvWrhC5keRXw9vf1TjjA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_RLG0bJlI106j_jkPxUqEVg_27_4">128,358</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_KEDzJ_9YO0yRNVp0isrs6w_27_6">189,030</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2021_4qpvWrhC5keRXw9vf1TjjA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" id="Tc_9Jn0VBkrbkOSMcMrNURHoA_27_8">128,358</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Supplemental disclosure of cash flow information:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash paid during the period for interest</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash paid during the period for income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="Tc_0QZZzEzCAk-GjRt3PZzWBQ_30_2">3,709</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="Tc_kqI9HnmKPEig4UoeLoKduQ_30_4">1,583</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="Tc_wrhk3e37FkyAMjyXCk_NfQ_30_6">7,803</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="Tc_HAo1U90XSUiVW2gIobwemw_30_8">4,761</ix:nonFraction></span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">The accompanying notes are an integral part of these unaudited condensed consolidated financial statements.</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;margin:0pt;"><span style="font-family:'Verdana';font-size:0pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">47</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_74e4233c_0a56_4b70_b841_dd85bc3f143c"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">THE DESCARTES SYSTEMS GROUP&#xA0;INC.</b></p><a id="NOTESTOCONDENSEDCONSOLIDATEDFINANCIALSTA"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">NOTES&#xA0;TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">(TABULAR AMOUNTS IN THOUSANDS OF US DOLLARS, EXCEPT PER SHARE AMOUNTS OR AS OTHERWISE INDICATED; US GAAP; UNAUDITED)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock" id="Tb_xBhrRP9hz0CJ_VStcFinFA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;1&#xA0;- Description of the Business</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The Descartes Systems Group&#xA0;Inc. (&#x201C;Descartes&#x201D;, &#x201C;Company&#x201D;, &#x201C;our&#x201D; or &#x201C;we&#x201D;) is a provider of global logistics technology solutions. Customers use our modular, software-as-a-service (&#x201C;SaaS&#x201D;) and data solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access and analyze global trade data; research and perform trade tariff and duty calculations; file customs and security documents for imports and exports;&#xA0;and complete numerous other logistics processes by participating in a large, collaborative multi-modal logistics community. Our pricing model provides our customers with flexibility in purchasing our solutions either on a subscription, transactional or perpetual license basis. Our primary focus is on serving transportation providers (air, ocean and truck modes), logistics service providers (including third-party logistics providers, freight forwarders and customs brokers) and distribution-intensive companies for which logistics is either a key or a defining part of their own product or service offering, or for which our solutions can provide an opportunity to reduce costs, improve service levels, or support growth by optimizing the use of assets and information.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:SignificantAccountingPoliciesTextBlock" id="Tb_-kefOXt3zkKjCjNX0iEyxQ" continuedAt="Tb_-kefOXt3zkKjCjNX0iEyxQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;2&#xA0;&#x2013;Basis of Presentation</b></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:BasisOfAccountingPolicyPolicyTextBlock" id="Tb_qqnAPtefukSgJxgfTZ2lWg" continuedAt="Tb_qqnAPtefukSgJxgfTZ2lWg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The accompanying unaudited condensed consolidated financial statements are presented in United States (&#x201C;US&#x201D;) dollars and are prepared in accordance with generally accepted accounting principles in the US (&#x201C;GAAP&#x201D;) and the rules&#xA0;and regulations of the Canadian Securities Administrators and US Securities and Exchange Commission (&#x201C;SEC&#x201D;) for the preparation of condensed interim financial statements. Accordingly, these unaudited condensed consolidated financial statements do not include all of the information and notes required for compliance with GAAP for annual financial statements. These statements should be read in conjunction with our audited annual consolidated financial statements prepared in accordance with GAAP for the fiscal&#xA0;year ended January&#xA0;31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The unaudited condensed consolidated financial statements reflect all adjustments, which are, in the opinion of management, necessary for a fair presentation of results for the interim periods presented. The preparation of these unaudited condensed consolidated financial statements requires management to make estimates and assumptions that affect the amounts reported in the unaudited condensed consolidated financial statements and the accompanying notes. Actual results could differ from these estimates and the results of operations for the interim period should not be considered indicative of results to be expected for the full&#xA0;year ending January&#xA0;31, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The world continues to experience a global pandemic related to the spread of the COVID-19 virus (the &#x201C;Pandemic&#x201D;).</span><span style="font-family:'Verdana';"> The Pandemic has had disruptive effects in countries in which the Company operates, and the future impacts of the Pandemic and any resulting economic impact are largely unknown and rapidly evolving. As the impacts of the Pandemic continue to evolve, estimates and assumptions about future events and their effects cannot be determined with certainty and therefore require increased judgment. The future impact of Pandemic uncertainties could result in a significant impact on the reported amounts of assets, liabilities, revenue and expenses in these and any future consolidated financial statements. Examples of accounting estimates and judgments that may be impacted by the Pandemic include, but are not limited to; revenue recognition, impairment of goodwill and intangible assets and provisions for credit losses.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Our fiscal&#xA0;year commences on February&#xA0;1</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each&#xA0;year and ends on January&#xA0;31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the following&#xA0;year. Our fiscal&#xA0;year, which ends on January&#xA0;31, 2023, is referred to as the &#x201C;current fiscal&#xA0;year&#x201D;, &#x201C;fiscal 2023&#x201D;, &#x201C;2023&#x201D; or using similar words. Our previous fiscal&#xA0;year, which ended on January&#xA0;31, 2022, is referred to as the &#x201C;previous fiscal&#xA0;year&#x201D;, &#x201C;fiscal 2022&#x201D;, &#x201C;2022&#x201D; or using similar words. Other fiscal&#xA0;years are referenced by the </span></p></ix:nonNumeric></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">48</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_-kefOXt3zkKjCjNX0iEyxQ_cont1"><ix:continuation id="Tb_qqnAPtefukSgJxgfTZ2lWg_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">applicable&#xA0;year during which the fiscal&#xA0;year ends. For example, &#x201C;2024&#x201D; refers to the annual period ending January&#xA0;31, 2024 and the &#x201C;fourth quarter of 2024&#x201D; refers to the quarter ending January&#xA0;31, 2024.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The significant accounting policies used in preparing these condensed consolidated financial statements are unchanged from those disclosed in the Company&#x2019;s fiscal 2022 annual consolidated financial statements and have been applied consistently to all periods presented in these condensed consolidated financial statements.</span></p></ix:continuation><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="Tb_ukAzahprS026U2pHAJ6w1g" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Recently issued accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In October&#xA0;2021, the FASB issued Accounting Standards Update 2021-08, &#x201C;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers&#x201D; (&#x201C;ASU 2021-08&#x201D;). ASU 2021-08 provides guidance on how to recognize and measure acquired contract assets and liabilities from revenue contracts in a business combination. ASU 2021-08 is effective for annual periods, and interim periods within those annual periods, beginning after December&#xA0;15, 2022, which will be our fiscal&#xA0;year beginning February&#xA0;1, 2023 (fiscal 2024). Early adoption is permitted. The Company will adopt this guidance in the first quarter of fiscal 2024. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures</span><span style="font-family:'Verdana';">.</span></p></ix:nonNumeric></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:BusinessCombinationDisclosureTextBlock" id="Tb_LQWUJA6jqUOt0lkmckfE6A" continuedAt="Tb_LQWUJA6jqUOt0lkmckfE6A_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;3&#xA0;&#x2013; Acquisitions</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2023 Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On February&#xA0;9, 2022, Descartes acquired all of the shares of NetCHB, LLC (&#x201C;NetCHB&#x201D;), a provider of customs filing solutions in the US. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Cai7QNLiXUWU0eTBBetnkA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_3n_Is1yavUK0qAVoHibmdg">38.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_WWC9hrkdrUCOyGkeDitcJw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_rAFPYpWbTE6mB7juxJpjLg">60.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million based on NetCHB achieving revenue-based targets over the first </span><ix:nonNumeric contextRef="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Cai7QNLiXUWU0eTBBetnkA" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_KMA6xkWYpkafmtDg5DLoXA"><span style="font-family:'Verdana';">two&#xA0;years</span></ix:nonNumeric><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent considerations was valued at </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_WWC9hrkdrUCOyGkeDitcJw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_cn6I9hWFjEiafWZiJyH61g">13.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_WWC9hrkdrUCOyGkeDitcJw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_raBgoI4hg0eFQ-jbCWJQzA">0.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_WWC9hrkdrUCOyGkeDitcJw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_5n7uuYH0uEa4MWcD5wqHPQ">0.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before February&#xA0;9, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On April&#xA0;21, 2022, Descartes acquired substantially all of the assets of Foxtrot,&#xA0;Inc. (&#x201C;Foxtrot&#x201D;), a provider of machine learning-based mobile route execution solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_4_21_2022_To_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_vMPO0h0pMEy6O0AHxSKXHA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_E_UNovmEGUSONKJ8ADqfow">4.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CWwsUhWXiUCJ5-FFM7zwFg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_WgHvdQQ_pEqg-yKieau69Q">0.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CWwsUhWXiUCJ5-FFM7zwFg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_qg6MpWP27kWYH6QjUygh2w">0.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before April&#xA0;21, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On June&#xA0;3, 2022, Descartes acquired all of the shares of XPS Technologies, LLC (&#x201C;XPS&#x201D;), a provider of ecommerce multi-carrier parcel shipping solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_6_3_2022_To_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_kQNCPTBUTUmJgPwQDwIBjQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_5IYfCfL0-ky1PZJTUhQSww">61.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_nx45mrSRGESp-DasdCzZRw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_uND86ba1YEi1QFm_gZatvw">75.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million based on XPS achieving revenue-based targets over the first </span><ix:nonNumeric contextRef="Duration_6_3_2022_To_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_kQNCPTBUTUmJgPwQDwIBjQ" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_QtVR6bJjgkiqw-wxuP6TRw"><span style="font-family:'Verdana';">two&#xA0;years</span></ix:nonNumeric><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent considerations was valued at </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_nx45mrSRGESp-DasdCzZRw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_v_rFVcOrmEWyGFWvNhn9Sw">9.4</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_nx45mrSRGESp-DasdCzZRw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_SX0fEE5cOEisBvRls4nJ7A">1.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_nx45mrSRGESp-DasdCzZRw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_m2CuaMBSG02EJG4PrBAc6w">1.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before June&#xA0;3, 2023.</span></p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">49</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_f_3EE0Ow_kmyyQa64F0fJg_1_2"></a><a id="Tc_bMg83NIpvUyLEpDrwudONg_1_4"></a><a id="Tc_BqRBedOUYU2WHqNbdtU2CA_1_6"></a><a id="Tc_c545U6cR00iRSLH0bEftkA_1_8"></a><a id="Tc_Mxg_Tyin_keSVB0XY2V1BQ_2_0"></a><a id="Tc_XTAz5wo9d0Ov1GKIiSWo5A_3_0"></a><a id="Tc_hFVBPFPxaE23k9AxQsTblw_4_0"></a><a id="Tc_8QUW4FZgfke99SqnbJwYFg_4_4"></a><a id="Tc_c60tdYOAxUqfLOyvmRVR1Q_5_0"></a><a id="Tc_HF-7zuujykaQrWAX6KSKBw_7_0"></a><a id="Tc_RV4_J7UJtk6XsY8h6b62Bg_8_0"></a><a id="Tc_skLK9OOxjkWRvYaePsxjsA_9_0"></a><a id="Tc_txKZYuItQkCV9iuOqQtXZw_10_0"></a><a id="Tc_QfX8l-VnDEaM2vlYUxGqTQ_10_2"></a><a id="Tc_LuCPi1bkwUmRO7hYcBH4Mw_11_0"></a><a id="Tc_5lyAb4QrBkCzDTnO64uCvQ_13_0"></a><a id="Tc_fTZGZOmwfE2vhWwVB4Lzaw_14_0"></a><a id="Tc_YKjUtbZM6Ey6NnOi2J7OSA_15_0"></a><a id="Tc_Yt2oSWHjoES1p-HHniDo-Q_16_0"></a><a id="Tc_pKObCvlkZU6t5KuWkATRYQ_16_4"></a><a id="Tc_0uvGiyGGMUCa4mLfDxa9kg_17_0"></a><a id="Tc_jjJgRY99fkuUwOF-LUm-mg_17_4"></a><a id="Tc_cPHG07keUkuKFQqHm7Hi8Q_18_0"></a><a id="Tc_CRIZ4ChkikKZ3iuVUFaUAw_1_2"></a><a id="Tc_U2KEg1pbHUGwzxG66YB9lw_1_4"></a><a id="Tc_S0jwHi2pTkma_pXLwAQPUA_1_6"></a><a id="Tc_grqBd6dASU-hFCRDTvrJnQ_2_0"></a><a id="Tc_YqxN0vWnK0u47t7El86fkQ_3_0"></a><a id="Tc_te1enadAOUqXCTwup1ld4g_4_0"></a><a id="Tc_FzedmeBEo029CEXSVAw_RA_4_4"></a><a id="Tc_UezN3Mxlkkmn32U6ySvDXw_5_0"></a><a id="Tc_Yvh_lTZBSUyEkSZXhqiuVQ_5_4"></a><ix:continuation id="Tb_LQWUJA6jqUOt0lkmckfE6A_cont1" continuedAt="Tb_LQWUJA6jqUOt0lkmckfE6A_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the businesses acquired during fiscal 2023, we incurred acquisition-related costs of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_H41q9OpAaEGAqt9H4-r8Dw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="6" id="Narr_P3dcyuyoF06eKVnQJnK7Fg">0.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_MiURUplOH0CtyEhurZAfRw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="6" id="Narr_V-3TPobhQkieJP1_TCCuYA">0.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million for the three and six&#xA0;month periods ended July&#xA0;31, 2022, respectively. The acquisition-related costs were primarily for advisory services and are included in other charges in our condensed consolidated statements of operations. During the three and six&#xA0;month periods ended July&#xA0;31, 2022, we have recognized revenues of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_H41q9OpAaEGAqt9H4-r8Dw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" scale="6" id="Narr_x-5gmTvG3USh3PI00oZotQ">4.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_MiURUplOH0CtyEhurZAfRw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" scale="6" id="Narr_ZyWIY7GurUO9hCNybM5ZVg">6.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million, respectively, and net income of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_H41q9OpAaEGAqt9H4-r8Dw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" scale="6" id="Narr_p-6HOD2IpEer10EHg1FLFg">0.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_MiURUplOH0CtyEhurZAfRw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" scale="6" id="Narr_rd1r1o4DB0S37QLip50a2Q">1.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million, respectively, from NetCHB, Foxtrot and XPS since the date of acquisition in our condensed consolidated statements of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The preliminary purchase price allocation for the businesses acquired during 2023, which have not been finalized, is as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" id="Tb_34GbeC-NYUanMwnHLnrjWg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;</b></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to NetCHB (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_mr0ScAHDWUGWQH2y9f8etQ">658</ix:nonFraction></span><span style="font-family:'Verdana';">), Foxtrot (</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_UjeVWj1jQEaRZOq-I18Tng" decimals="-3" format="ixt-sec:numwordsen" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_Mqv9S22PY0-puUGmLNN7iw">Nil</ix:nonFraction></span><span style="font-family:'Verdana';">) and XPS (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:CashAcquiredFromAcquisition" scale="3" id="Narr_bGUBwllq6EWlOlpAYiZfDg">3,932</ix:nonFraction></span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_S6Ok3e71EkqCHJNiAtD5dA_3_2">38,664</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_UjeVWj1jQEaRZOq-I18Tng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_jAsWssorHkycS7hk2P_5XA_3_4">4,228</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_n1FZ2PQRYkGLbqgc4EW3JQ_3_6">61,096</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" id="Tc_UTrmoAH69UeLxZs9aZamjA_3_8">103,988</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_LrO-1ZJfAk6MvLpid5GWdw_4_2">13,948</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_YRo2Xz6qyUS-XY0aRM-8fg_4_6">9,425</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred" scale="3" id="Tc_nnez1YFTd0yrHQ96ENQZtg_4_8">23,373</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_pMuxBxFXqEyWRJaN-3FP3w_5_2">51</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_UjeVWj1jQEaRZOq-I18Tng" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_oVEX8z0u3kml0pGL2kjEvw_5_4">74</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc__NXVdpmwbkaVwTpAOrwWlw_5_6">825</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" scale="3" id="Tc_cSOMwrQXP0SpS3mrmIeHfQ_5_8">950</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_p0207oPsZkap78psorFabA_6_2">52,663</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_UjeVWj1jQEaRZOq-I18Tng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_tlgVv3YI_0-ehnYCxam23g_6_4">4,302</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_CJXxg4Apc06LZlX79Ka1Ag_6_6">71,346</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" id="Tc_ruJlEKv6TEKuMG6YO_0PMQ_6_8">128,311</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_w82LPY6N702UfvJ80lTeaA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_bdTJ3Y29pkyfEklcS7eTMQ_8_2">469</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_LgOowq5j_kCqEawgfqDCog_8_4">835</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_7IzFOzCukEiCdpfVRuMsBg_8_6">2,228</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" scale="3" id="Tc_GeCQ6KpueECif8JHBuPSRw_8_8">3,532</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_w82LPY6N702UfvJ80lTeaA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_sswC0YwlJEOy6RtQLUv15A_9_2">367</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_xNb-H-oyXkCetwoAyMQYew_9_4">14</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_JoJ_HM7JC02djbHQbzFAuw_9_6">1,491</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" scale="3" id="Tc_mo7yGlIlqkOId473cKRUig_9_8">1,872</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_3sgYZUvVXUqj1Ehrp3hpAw_10_4">336</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_iEKbK1ubAUCE7bZwmO3BCg_10_6">2,120</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" scale="3" id="Tc_3EqzGvZu0U6bBFksQAuTYQ_10_8">2,456</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_w82LPY6N702UfvJ80lTeaA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_E5h9tL9XPkamE1wyTE_7GA_11_2">102</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" sign="-" scale="3" id="Tc_yFUhi2Kyy0icVU1vuCoz3w_11_4">485</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_z2WwQvZmCUCuMy7WiL-L9g_11_6">1,383</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" scale="3" id="Tc_pKNTewB7-EGvvLZZOntlVA_11_8">796</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_W_bJFM3kM02MWq6T9JBYYQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_s6i25WI7oUSZl-PK8uYLJA_14_2">10,900</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_XSJ4VRiEDEOcbBrxySGr3g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_39TE5s5q5UeFxfQJdP_a8w_14_4">650</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_7RMJZqFlMkGsAfeqqsS9Kg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_6oUrxOf9F0SWqjeMaM52oA_14_6">8,100</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_NhHWTTjKWUKaIx47t07K3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_kLcSQE8gNUyObTpSxfX7jA_14_8">19,650</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_a8z5KL7um0mywjtvjlv5UA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_Z19fDYppokOZp_53ceww7Q_15_2">14,100</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_61U7MU3Ta0OC1vAXNFhSNA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_IR-VIOhLYEqjk_AlpbxmqQ_15_4">1,640</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_oGYvyNzWREuBRs8ipLm-fA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_FyAfLFzn3kWwP7VpPJhH2g_15_6">20,000</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_ZirpZTUoA0KXFGT5Q7rnow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_AjNy8WyVuE6UtsooPLkMDw_15_8">35,740</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_DYR0hRlfQE--mDBFjeHcEg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_lggEANfczUWfXyzCKE5KBA_16_2">64</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_pbr03QPzQUatoSPb1zHP2A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_sYNJnwxgy0SJkb7JDintzw_16_6">100</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ycKV5WOoakO_m-juiyY7bA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_CXDWkuTLZU2Y8tLTGwgaGQ_16_8">164</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_mqocVqaz_UeI7Mpi3mlvug" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_bkiFJGLgfEebRc5qAH_uUw_17_2">700</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NH4dmPCXqkyt43LKd_9yUQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_a3JgsARRfkeSjPMP3gqeUQ_17_6">1,000</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_pCNbRm9qUkqGGcbmxYAUpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_Avzdym-fR0aAVwBcfxzcbQ_17_8">1,700</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_w82LPY6N702UfvJ80lTeaA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_HtsCyspVYE2llJ87WL1N9g_18_2">26,797</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_UxzZJE7y8E-S5pR9wTw4hg_18_4">1,527</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_EguXTZ95TkiRgaCi-fBvKQ_18_6">43,529</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" scale="3" id="Tc_clmCFhre-k6S79GG8Y0b2g_18_8">71,853</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_w82LPY6N702UfvJ80lTeaA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_AYQ9YykxF0iEPXIWmysK7g_19_2">52,663</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_N9xcfCWYzkiYChc9iwUzMQ_19_4">4,302</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_4ZiEsUaFUEyeNs3S0R5UmA_19_6">71,346</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="Tc_9cGUHwDXZ0GuZn8BdwS5GA_19_8">128,311</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The above transactions were accounted for using the acquisition method in accordance with ASC Topic 805, &#x201C;Business Combinations&#x201D;. The purchase price allocations in the table above represents our estimates of the allocation of the purchase price and the fair value of net assets acquired. The preliminary purchase price allocations may differ from the final purchase price allocation, and these differences may be material. Revisions to the allocations will occur as additional information about the fair value of assets and liabilities becomes available. The final purchase price allocations will be completed within one&#xA0;year from the acquisition date.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The acquired intangible assets are being amortized over their estimated useful lives as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" id="Tb_YTRK12OrEUKqeQp56S95MA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_cT23BQJCOEuG3s0rXxDfhA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_nkdy4KuVuUCVVQ9MEVIY9w_2_2"><span style="font-family:'Verdana';">13 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_dkGvOwj5QE2c4_DnhYbhAQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_RG1XOEKfLECLDtMWl4aZeg_2_4"><span style="font-family:'Verdana';">13 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_D0SXk_MvtEiXuLwcU3UvhA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_AUv0rLBkdUa__lhvbB53Cg_2_6"><span style="font-family:'Verdana';">11 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_4Lprca85P0G6A5DuBrABKg" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_8TpulZxoqkOhEWETzoGzYg_3_2"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_tKsR3oiPt0qKSYCzx4QzFg" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_x5XBRVzXC0yfRKLekrhsBA_3_4"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_ivbz6pEjTkW4wgJUuIQz_g" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_yEuuHpqWzUOzaHT-wl_SlA_3_6"><span style="font-family:'Verdana';">6 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_-b8w6z08Lk6uPxuISf1UjA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_wm1WcKADTUq6C8fj_poLlg_4_2"><span style="font-family:'Verdana';">2 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_XDYsvV5MHkKRYDAH2lTCeA" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_KQN70J2Y2UuXFsU1SyRyCQ_4_6"><span style="font-family:'Verdana';">2 years</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_n3NzygIUW0Gjb1bXqN7Z-Q" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_NDhm2nxLOkahJs5Q9Tqm-A_5_2"><span style="font-family:'Verdana';">5 years</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Sn34rR_Epk6mFWBsDLq3SQ" format="ixt-sec:durwordsen" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="Tc_xMCB_EJ_WESqJRveGY6wyQ_5_6"><span style="font-family:'Verdana';">5 years</span></ix:nonNumeric></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The goodwill on the NetCHB, Foxtrot and XPS acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the NetCHB, Foxtrot and XPS acquisitions are deductible for tax purposes.</span></p></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">50</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_kg2Kyy_D1kWM02JUHXoUPw_1_2"></a><a id="Tc_Nq03KPkwz0OfGoToOkpEng_1_6"></a><a id="Tc_7RrN0tVnKk-SieFLqNPvvg_2_2"></a><a id="Tc_qFSJbR17oUG4X9Vd34ksAQ_2_4"></a><a id="Tc_LQQ_kh24LUacvtjKd_xAsQ_2_6"></a><a id="Tc_bL9_0Bc_yk6QR0idfDrQ1A_2_8"></a><a id="Tc_zMSwuWsvFEe5iEDwHyIBLw_3_2"></a><a id="Tc_hVyKGM6pD0G87MemEecSGA_3_4"></a><a id="Tc_j2F3KN71KUivce4lbcKuyQ_3_6"></a><a id="Tc_DrDNEDVMTE-_yMso6TvQ-w_3_8"></a><a id="Tc_suIUOrweXUihuY5hKdUlng_5_0"></a><a id="Tc_VCZ4py767Eqvd5CDhFFY2g_6_0"></a><a id="Tc_4usOfG3rlkubJ8iPb-PhbQ_7_0"></a><a id="Tc_z2u7k4N0qU6t_TZ8UmwMuA_8_0"></a><a id="Tc_F9-aZaSH40KUVKO_oZCQ3A_9_0"></a><ix:continuation id="Tb_LQWUJA6jqUOt0lkmckfE6A_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2022 Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On February&#xA0;26, 2021, Descartes acquired all of the shares of VitaDex Solutions, LLC, doing business as QuestaWeb (&#x201C;QuestaWeb&#x201D;), a US-based provider of foreign trade zone and customs compliance solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_26_2021_To_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_x__u-pV_nEq-QJ3t-xKcyg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_xzfQR-dHXk2CIm2zQezqzw">35.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_TcPMxsqhxk27UTsx_qIYuA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_yjdqbIku0E-6Q6Y7eDiQag">0.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_TcPMxsqhxk27UTsx_qIYuA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_ydKfO7d7Q0Oug860BO68Zg">0.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_TcPMxsqhxk27UTsx_qIYuA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible" scale="6" id="Narr_0EqVJQM7z0SfHG3sIcWzlw">0.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million. The purchase price was finalized in the three&#xA0;month period ended January&#xA0;31, 2022 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On May&#xA0;7, 2021, Descartes acquired all of the shares of Portrix Logistics Software GmbH (&#x201C;Portrix&#x201D;), a provider of multimodal rate management solutions for logistics services providers. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_7_2021_To_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_xCNnbTGwLU-vcaIGLLrvGA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_k3O3-PjG5kSnrJ_QIpAYyw">25.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million (EUR </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_EUR_Zg9NuFmbbkqFLhsENpy6DA" contextRef="Duration_5_7_2021_To_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_xCNnbTGwLU-vcaIGLLrvGA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_wnNEcMSibE-NqfzMYiLpJg">20.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million), net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_LN8FgHU-9UKvbyLQ1r6s7w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_cAo-JQTYrkywPDnjJxMjpA">0.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_LN8FgHU-9UKvbyLQ1r6s7w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_BUZGZlHH0U25p2VT_20CWQ">0.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three&#xA0;month period ended April&#xA0;30, 2022 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July&#xA0;8, 2021, Descartes acquired all of the shares of GreenMile, LLC (&#x201C;GreenMile&#x201D;), a provider of cloud-based mobile route execution solutions for food, beverage, and broader distribution verticals. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_7_8_2021_To_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_Cc-cEfJriUuQE967stYLJA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="6" id="Narr_2FEOTVQLfUiM8tkLXIPh0Q">29.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_bvImWuAHoUmZ6rgOA5DqxA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_go_DVl0PeUabjOwIZ-cH0w">10.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million in cash is payable if certain revenue performance targets are met by GreenMile in the </span><ix:nonNumeric contextRef="Duration_7_8_2021_To_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_Cc-cEfJriUuQE967stYLJA" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_w5wI5CziyUu46e5CEi8UQw"><span style="font-family:'Verdana';">two&#xA0;years</span></ix:nonNumeric><span style="font-family:'Verdana';"> following the acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_bvImWuAHoUmZ6rgOA5DqxA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_9miXG2Nvtkm9cmGXf1Pu6w">3.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_bvImWuAHoUmZ6rgOA5DqxA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount" scale="6" id="Narr_Rz384nW3T02wtmNDFgub6A">1.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_bvImWuAHoUmZ6rgOA5DqxA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesFairValue" scale="6" id="Narr_ftOq_ClSbkWHGO-cbUMaMA">1.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_bvImWuAHoUmZ6rgOA5DqxA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible" scale="6" id="Narr_FvAeAxy3HkWJ3-b4XZ3dzQ">0.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million. The purchase price was finalized in the three&#xA0;month period ended July&#xA0;31, 2022 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Pro Forma Results of Operations (Unaudited)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired XPS, Foxtrot, NetCHB, GreenMile, Portrix and QuestaWeb as of February&#xA0;1, 2021.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">This pro forma information is for information purposes only and does not purport to represent what our actual results of operations for the periods presented would have been had the acquisitions of XPS, Foxtrot, NetCHB, GreenMile, Portrix and QuestaWeb occurred at February&#xA0;1, 2021, or to project our results of operations for any future period.</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:BusinessAcquisitionProFormaInformationTextBlock" id="Tb_gHXEapVPRE6K6cXDAwfljA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#xA0;Months&#xA0;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaRevenue" scale="3" id="Tc_qxZyIPtYzkuo1rRUSVtl7w_5_2">124,237</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaRevenue" scale="3" id="Tc_3bTANxkblUONx49PO5zeXA_5_4">113,126</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaRevenue" scale="3" id="Tc_AOOdGACFF0agJjWPGPOxYg_5_6">245,151</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaRevenue" scale="3" id="Tc_cd7QQXgvuEqBilNv8fEflQ_5_8">222,582</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" scale="3" id="Tc_aOLZ4gLGakqKAw_R4I8wDQ_6_2">22,998</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" scale="3" id="Tc_kGbBZOgjZ06qaCjqABEWbQ_6_4">24,398</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" scale="3" id="Tc_PFmOedobIkWDJ7GgXnlwWA_6_6">46,521</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" scale="3" id="Tc_7Cy428REi0iqOmY5VxZnig_6_8">43,808</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic" scale="0" id="Tc_TUB8F6t0AkGlw3XhyH6TwA_8_2">0.27</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic" scale="0" id="Tc_35qUkMgRf0eRG9kpRFNfNg_8_4">0.29</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic" scale="0" id="Tc__vQwqpOLBUqn84gMluTFjg_8_6">0.55</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic" scale="0" id="Tc_Gj_HPesvJUK_igrdhiZotA_8_8">0.52</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted" scale="0" id="Tc_V1TaQje5IESm4JBdyshV0Q_9_2">0.27</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted" scale="0" id="Tc_b0wwQ4_ATEap7d42IDXiSw_9_4">0.28</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted" scale="0" id="Tc_K7CknjD9hkm_Bqn52kFcHg_9_6">0.54</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="2" format="ixt:numdotdecimal" name="us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted" scale="0" id="Tc_PfB9DkCVEUKkq533TVqWcw_9_8">0.51</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:FairValueDisclosuresTextBlock" id="Tb_FHhZYmFiZEiYcJmCxWm-hQ" continuedAt="Tb_FHhZYmFiZEiYcJmCxWm-hQ_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;4&#xA0;&#x2013; Fair Value Measurements</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">ASC Topic 820 &#x201C;Fair Value Measurements and Disclosures&#x201D; (Topic 820) defines fair value as the price that would be received upon sale of an asset or paid upon transfer of a liability in an orderly transaction between market participants at the measurement date and in the principal or most advantageous market for that asset or liability. The fair value, in this context, should be calculated based on assumptions that market participants would use in pricing the asset or liability, not on assumptions specific to the entity. In addition, </span></p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">51</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="_498c5ec0_1ca0_49f8_a5e5_eb167a27e8fd"></a><a id="Tc_tIjXQYsWPkq2vH4omjrObw_1_2"></a><a id="Tc_y8iNgOtPu0inYncYvDO0vw_1_4"></a><a id="Tc_xLxYe5bATkeCi8HsOxR9og_1_6"></a><a id="Tc_GG9LLoG0gEKW1K51uT_LcA_1_8"></a><a id="Tc_dZ5bduFQIEa3M2u7utUYdA_2_0"></a><a id="Tc_CgRAihSB7EuNlrnnsi0rXw_3_0"></a><a id="Tc_bAQPiUXLb0mj29kKpL_CCA_3_2"></a><a id="Tc_uq0ja0oeb0yFBJorRxmnsw_3_6"></a><a id="Tc_08dtjnm03EeK0GQ0xbSTiw_5_0"></a><a id="Tc_1F2MdZxWIEaiXFrhy_qgWw_6_0"></a><a id="Tc_b0-Z17IPGUSenPBiKdb4Tw_6_2"></a><a id="Tc_zX6rQ1WElkuMRS38KkEHpQ_6_4"></a><a id="_6299ed69_7cde_474c_a140_bf15b4987d20"></a><a id="Tc_Vqv14zz6dUiYa-UL2gNa7w_1_2"></a><a id="Tc_Rpjyt_G4vEmJ8VPihqE9bA_1_4"></a><a id="Tc_IAnlJelkmEmqDGENglR2XA_1_6"></a><a id="Tc_qjb3Zv1sIEC7xQ9WY2Uwug_1_8"></a><a id="Tc_a0HJ10uQ_kS_MZFLukkA6Q_2_0"></a><a id="Tc_sgrmC8MIIUKTJKdwMWl1tw_3_0"></a><a id="Tc_HDb9BHPP-0WW0R5p50a3pw_3_2"></a><a id="Tc_PD_RXmgrCE-5tUwKEofqrQ_3_6"></a><a id="Tc_FGxRCOQ8dUO5_SV78PtK6g_5_0"></a><a id="Tc__nLKE06g6kSlFgz1oLethg_6_0"></a><a id="Tc_JhoTjYOqt0SRN48dmRryCA_6_2"></a><a id="Tc_uS5E5e_lLU2O5JxVsYTV5A_6_4"></a><ix:continuation id="Tb_FHhZYmFiZEiYcJmCxWm-hQ_cont1" continuedAt="Tb_FHhZYmFiZEiYcJmCxWm-hQ_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">the fair value of liabilities should include consideration of non-performance risk, including our own credit risk.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Topic 820 establishes a fair value hierarchy which prioritizes the inputs used in the valuation methodologies in measuring fair value into three levels:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 1&#x2014;inputs are based upon unadjusted quoted prices for identical instruments traded in active markets.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 2&#x2014;inputs are based upon quoted prices for similar instruments in active markets, quoted prices for identical or similar instruments in markets that are not active, and model-based valuation techniques for which all significant assumptions are observable in the market or can be corroborated by observable market data for substantially the full term of the assets or liabilities.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#x25CF;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 3&#x2014;inputs are generally unobservable and typically reflect management&#x2019;s estimates of assumptions that market participants would use in pricing the asset or liability. The fair values are therefore determined using model-based techniques that include option pricing models, discounted cash flow models, and similar techniques.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The carrying amounts of the Company&#x2019;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value (a Level 2 measurement) due to their short maturities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the Company&#x2019;s financial instruments measured at fair value on a recurring basis as of July&#xA0;31, 2022:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" id="Tb_Vgia0W-m5keqr8LywkAGCQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#xA0;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#xA0;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#xA0;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_4xnsem-OsUqUypo1njoeTw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssets" scale="3" id="Tc_exYURCAg_0SR6Nxv9zijsA_3_4">10,237</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssets" scale="3" id="Tc_wn4BZWnYc0WOGT2s-l9N_g_3_8">10,237</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_7G3pbM-DYEWiXhPpixkIgQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_kyTGbUdCXUi3oFkUYpV8Tg_6_6">27,579</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_7RSHoMXnZkixjgA6rF1pSg_6_8">27,579</ix:nonFraction></b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the Company&#x2019;s financial instruments measured at fair value on a recurring basis as of January&#xA0;31, 2022:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Level&#xA0;1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Level&#xA0;2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Level&#xA0;3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Total</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_BIipgXZVjUe-1xxh7CEkbA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssets" scale="3" id="Tc_jMB2gSIl4UGia-AhZ0U0Bw_3_4">10,863</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DerivativeAssets" scale="3" id="Tc_yV7g_FK9hUuMjkLqFJoTOw_3_8">10,863</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pFzojNMomkGqcY8qpc5UZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_3YflqMdLiESgQXH35MXj3w_6_6">12,990</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="3" id="Tc_vdlvh2l0Dkyoqtplp_nbDg_6_8">12,990</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The Company enters into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain future share-based compensation expenses. The equity derivative contracts are not designated as hedge instruments and the Company does not hold derivatives for speculative purposes. As at July&#xA0;31, 2022, we had equity derivatives for </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="INF" format="ixt:numdotdecimal" name="dsgx:DerivativeInstrumentSharesOfCommonStockHeld" scale="0" id="Narr_XRcmcdgsQE66Yef7qlVTjw">281,768</ix:nonFraction></span><span style="font-family:'Verdana';"> Descartes common shares with a weighted average purchase price of $</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="2" format="ixt:numdotdecimal" name="dsgx:DerivativeInstrumentCommonSharesHeldPerShare" scale="0" id="Narr_ME4q5cqyz0G47kkTBMGZDQ">32.79</ix:nonFraction></span><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The fair value of equity contract derivatives is </span><span style="font-family:'Verdana';">determined utilizing a valuation model</span><span style="font-family:'Verdana';"> based on the quoted market value of our common shares at the balance sheet date (Level 2 fair value inputs). The fair value of equity contract derivatives is recorded as other current assets and gains and losses are recorded in general and </span><span style="font-family:'Verdana';">administrative expenses in the condensed consolidated financial statements. During the three and six&#xA0;months ended July&#xA0;31, 2022, we recognized an expense (recovery) in general and administrative expenses of </span><span style="font-family:'Verdana';">($<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_u8Eak7lD3EC3U2Nh5WI3gw" decimals="-5" format="ixt:numdotdecimal" name="dsgx:ExpensesAndRecoveriesNet" sign="-" scale="6" id="Narr_oP-GvJ5y_UyIwpQ0tJ2doQ">1.9</ix:nonFraction>)</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_YliF3vhnP0iE11BzFydcBg" decimals="-5" format="ixt:numdotdecimal" name="dsgx:ExpensesAndRecoveriesNet" scale="6" id="Narr_BqvamalDcESqK2287KceEQ">0.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million, respectively, compared to an expense (recovery) of $</span><span style="font-family:'Verdana';">(<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_QjMMSpUPzUarN6J1mlT5hA" decimals="-5" format="ixt:numdotdecimal" name="dsgx:ExpensesAndRecoveriesNet" sign="-" scale="6" id="Narr_4mtZzEQD90-ovuJsktJ7oA">2.4</ix:nonFraction>)</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">($<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_EbAIlI12WUa-adjEMKumIQ" decimals="-5" format="ixt:numdotdecimal" name="dsgx:ExpensesAndRecoveriesNet" sign="-" scale="6" id="Narr_Dj2JapmRHUq4D49baahaZg">2.5</ix:nonFraction>)</span><span style="font-family:'Verdana';"> million for the same periods of fiscal 2022, respectively.</span></p></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">52</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_SN3Cp1DFykWfvu7OFKUvkQ_1_2"></a><a id="Tc_KmbKi9QLHUyILLePf-XT7g_2_0"></a><a id="Tc_4GyvmzcOQ0e5APdBxS4O5w_3_0"></a><a id="Tc_MS6VMg_TB0KbzwB_ufeWHA_4_0"></a><a id="Tc_P-CQrGpbpUip9tv8SzbRBg_5_0"></a><a id="Tc_dfWFhGVk_E25DDX2IA43OA_6_0"></a><a id="Tc_pGRPZ-XsMEeVU-CwAkoGZA_7_0"></a><ix:continuation id="Tb_FHhZYmFiZEiYcJmCxWm-hQ_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the fair value measurements of contingent consideration in Level 3 of the fair value hierarchy:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" id="Tb_RbNE-yQlN0SgV88sc_n1og" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#xA0;3</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pFzojNMomkGqcY8qpc5UZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_2eJOXAkj_k22uYiTQIkpaA_2_2">12,990</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increase from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_75Y7Xv7uqkWercYgCqOHjw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" scale="3" id="Tc_OnY40_ragkCMvNo9gja_vw_3_2">23,373</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_75Y7Xv7uqkWercYgCqOHjw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" sign="-" scale="3" id="Tc_4v6Omx4DJEeGIXBGWWBKpQ_4_2">10,517</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Charges through profit or loss</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_75Y7Xv7uqkWercYgCqOHjw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" scale="3" id="Tc_tL7IeMx8KESztZdNEHHfoA_5_2">1,833</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_75Y7Xv7uqkWercYgCqOHjw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" sign="-" scale="3" id="Tc_SPVrlmTy00SKW5lPUaLJ9Q_6_2">100</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_7G3pbM-DYEWiXhPpixkIgQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" scale="3" id="Tc_LdxWTFzatU6sJ38drLzH4g_7_2">27,579</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Estimates of the fair value of contingent consideration is performed by the Company on a quarterly basis. Key unobservable inputs include </span><span style="-sec-ix-hidden:Hidden_pSZxK8rp70Ke_RaEGReiMQ;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">revenue</span></span><span style="font-family:'Verdana';"> </span><span style="-sec-ix-hidden:Hidden_EhMWg6eEBEe5DICOqp8ajg;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">growth</span></span><span style="font-family:'Verdana';"> rates and the discount rates applied (</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="As_Of_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_CO6nEWWreUOXktlWlKnuDA" decimals="0" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput" scale="0" id="Narr_E3ffTsYbTk6ekWzx_kFQxw">10</ix:nonFraction>%</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="As_Of_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_ix7icJ5ImUq54HrratjVaQ" decimals="0" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput" scale="0" id="Narr_1OvgUJky1EKM8Xajk9_9-g">13</ix:nonFraction>%</span><span style="font-family:'Verdana';">). The estimated fair value increases as the annual revenue growth rate increases and as the discount rate decreases and vice versa.</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_ah3br_zuVkSUXeb0YPJDfw_1_2"></a><a id="Tc_8YUSfscAykm2AkbH5bPepw_1_4"></a><a id="Tc_N_YgayIGqUyVp_LI01Gldg_2_2"></a><a id="Tc_lw0w0XM2R0Co_i3UU5P1Gg_2_4"></a><a id="Tc_aO4Kx3Rf6Eu13RSqzn5E8g_3_0"></a><a id="Tc_hLXq1GnedkmXzyg0RqFl_w_4_0"></a><a id="Tc_K_-Gskci7UmDcqWxW7fkjg_1_2"></a><a id="Tc_FQWVTs715UeAhF5y-2DgGg_2_2"></a><a id="Tc_FCPh5yVxQ0idFOgz_06sSQ_3_2"></a><a id="Tc_zuVHM13kG0CO-FQFKhPdAQ_4_0"></a><a id="Tc_9ulV7Gh_8UuSDTQvEOpZOg_5_0"></a><a id="Tc_n_FELb8G2k2xJoD8oPhwew_6_0"></a><a id="Tc_NQ_iYB14rEime0tqrK6Wag_7_0"></a><a id="Tc_4zYVyyvvYkOoMf4SRF0Mfg_8_0"></a><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" id="Tb_OXdJJIHw70K1jpqSbotXMQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;5&#xA0;&#x2013; Trade Accounts Receivable</b></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" id="Tb_FwYkvkJ3eUiEVe_iIxNGdg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableGrossCurrent" scale="3" id="Tc_pLw3Y49R20emnhVzx47VgQ_3_2">50,869</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableGrossCurrent" scale="3" id="Tc_kcmMoiBaQk-Tt47CZoVfaw_3_4">43,565</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Less: Provision for credit losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_nvM2t2m-3k-UwLi6qaGfCg_4_2">1,956</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_lC_7BVBankqLMhkvY8HwSQ_4_4">1,860</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="Tc_SG9MpYtldEecI04eh2_WOQ_5_2">48,913</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccountsReceivableNetCurrent" scale="3" id="Tc_jeRA0F_GKkm2WMYpOt5z2g_5_4">41,705</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Included in accounts receivable are unbilled receivables in the amount of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnbilledReceivablesCurrent" scale="6" id="Narr_jtq_cb6b9EqCOB_dTiBgoQ">0.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million as at July&#xA0;31, 2022 (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:UnbilledReceivablesCurrent" scale="6" id="Narr_YW_8OoTLvEe_J58N2DBObQ">0.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million as at January&#xA0;31, 2022). </span><span style="font-family:'Verdana';">No single customer accounted for more than </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="2" format="ixt:numdotdecimal" name="dsgx:PercentageOfAccountReceivable" scale="-2" id="Narr_SN12QuN_kEWPtA5kEx_NMw"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_2_1_2021_To_1_31_2022_6FniHWIdoEaqbZuSVaSgbA" decimals="2" format="ixt:numdotdecimal" name="dsgx:PercentageOfAccountReceivable" scale="-2" id="Narr_yP3OiAUJpk2jkaROcjNoJQ">10</ix:nonFraction></ix:nonFraction>%</span><span style="font-family:'Verdana';"> of the accounts receivable balance as of July&#xA0;31, 2022 and January&#xA0;31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the provision for credit losses as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock" id="Tb_9-a1fDx4IkGLb8zma8ERLQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Provision</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">for&#xA0;Credit</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Losses</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_fNSH3Jn2VES64TcmQqIHkA_4_2">1,860</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current period provision for expected losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="Tc_zPLeVbUHTUalWwpqUvMPrA_5_2">232</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Write-offs charged against the provision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="Tc_rb-tNeObLk2OtQq7TPZk3g_6_2">114</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" sign="-" scale="3" id="Tc_Sq2FyEAn5UygyB5d7T_a3w_7_2">22</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" scale="3" id="Tc_Y6sga1qpfkGKX_mpGrNUng_8_2">1,956</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_uhxvGm5NOUCFeLtkQZhRTQ_1_2"></a><a id="Tc_lTwApR0iXkuEde5m2AYk4Q_1_4"></a><a id="Tc_P4KljVjJa0O1aFxX78yW7w_2_2"></a><a id="Tc_N4DieuueFUWDIvXHlgmWWg_2_4"></a><a id="Tc_tvUDftmLwk6IJDtblv216g_3_0"></a><a id="Tc_N_dynufSs0C3LcQ3Ys40BQ_4_0"></a><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="dsgx:OtherReceivablesTextBlock" id="Tb_soSK4k_Onk62-fHP5tTKYQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;6&#xA0;&#x2013; Other Receivables</b></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="dsgx:OtherReceivablesTableTextBlock" id="Tb_eRh9rQEShUWtYKLWQuHosQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net working capital adjustments receivable from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" scale="3" id="Tc_iYPs_sqvf0W10yFykEmKFQ_3_2">74</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" scale="3" id="Tc_IkZ861cOHEi2fmmL-3ac-A_3_4">309</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsCurrent" scale="3" id="Tc_8tV5e0rwIkuIL6eFTHKlDA_4_2">11,346</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAssetsCurrent" scale="3" id="Tc__S1aQ2IAtkSITKygqaTmHg_4_4">13,766</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherReceivablesNetCurrent" scale="3" id="Tc_JYP5t9UCZkCfUkA6e_AjTg_5_2">11,420</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherReceivablesNetCurrent" scale="3" id="Tc_2FHn-aP53Uq0GLW0ukvUCA_5_4">14,075</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At July&#xA0;31, 2022, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="dsgx:AmountsRecoverableFromFundsHeldInEscrow" scale="6" id="Narr_hqhR3anyQEe8XOKrQt-Mrg">0.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-5" format="ixt:numdotdecimal" name="dsgx:AmountsRecoverableFromFundsHeldInEscrow" scale="6" id="Narr_7to0rz-JtEavTas4gUTgNg">0.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million as at January&#xA0;31, 2022) of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">53</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:InventoryDisclosureTextBlock" id="Tb_LGFZm_pSUU-bllrjt9GlEA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;7&#xA0;&#x2013; Inventory</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">At July&#xA0;31, 2022 and January&#xA0;31, 2022, inventory is entirely comprised of finished goods inventory. Finished goods inventory primarily consists of hardware and related parts for mobile asset units held for sale. For both the three and six&#xA0;month periods ended July&#xA0;31, 2022, the provision for excess or obsolete inventories recorded in cost of revenues was nominal, compared to nominal </span><span style="font-family:'Verdana';">during the same periods of fiscal 2022.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_pHjQRvHDEkmrZBP3x3-Zkg_1_2"></a><a id="Tc_BkBymgGdxUSHT_Zyv_JB0Q_1_4"></a><a id="Tc_XeXCWpt_h0yGUof7VwtdaA_2_2"></a><a id="Tc_ThjOy0ICWUGx9GgH-YI-4w_2_4"></a><a id="Tc_3cPRVKX_dUqJQHYFxS52Fw_3_0"></a><a id="Tc_52RZLId2-Uedy4FuvEXAPg_4_0"></a><a id="Tc_C3_BsHJbL0CmbuTcetV5gw_5_0"></a><a id="Tc_RsC0fl22h0-bIHp3HdQm3g_6_0"></a><a id="Tc_O3HDFqATNUijwM2Brs15CQ_7_0"></a><a id="Tc_Qq_1eZ4oK0WaJaQeXmxASQ_8_0"></a><a id="Tc_cZ1ImuVS-kKNPInjZxqW_g_10_0"></a><a id="Tc_qD_t-6Q4MECbczboXtAoWQ_11_0"></a><a id="Tc_XKXcQP9Es0qm-tO2UMp5Vw_12_0"></a><a id="Tc_dVCBsJPZuUuZlbTtiXdCsQ_13_0"></a><a id="Tc_L2H7xF8bskCUCpIrE70NLQ_14_0"></a><a id="Tc_K-O73Nlvr0uL8hS4_szbZQ_16_0"></a><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" id="Tb_hBnQkf_7x0C-InEHLBVQ-w" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;8&#xA0;&#x2013; Property and Equipment</b></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="Tb_3bT7PKZk40-nG4QYSGRFXA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_2ZoOWAmAlUqc8VUYvo8jnQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_JA2R8LwNME--ipzPp-8EiA_4_2">42,553</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_38NjDFI5L0-3FlVS6nvthg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_u-MDzC16V0evUJijqTZobA_4_4">40,937</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_8fDNx1qKbUiop-sR30AUtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_DtLFYY7m_U-ebjSKKECm1w_5_2">1,629</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_mecr5EZecEGonKzTLPMcuA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_YFDvA2HA0E-E97cCS3pPcg_5_4">1,553</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_9d2A1tfQ0U-jNDnpaKT2ug" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_tAhgZ-SGokWsM-Tje4R0HA_6_2">1,024</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_10wEBbhXE0i7e7F3PRaiXA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_A6Xm3dTIHUSVcTg2mpo67Q_6_4">822</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_rvEMMoDC00y6VOD4Xt6k7w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_t7yrAFreAUOnpO68NHpE3Q_7_2">1,680</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_VRN0h6rvbkKRitpp1RHZ0w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_aksjJNMiHUu4GORb24pekg_7_4">1,635</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Assets under construction</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_8O7PftPd6kKdVOK7zscclQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_LfPH9H9vVk-m_dnWvp0xoA_8_2">469</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_zMPNAff-PUSrXTaEHWbdVA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_cVFRqcYCO0WRz5ACp_VOjw_8_4">524</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_CqK3JlK4yEyKql8cRVhFIw_9_2">47,355</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" id="Tc_zHX6pDSrpEGZrCH4f9vukQ_9_4">45,471</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated depreciation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_2ZoOWAmAlUqc8VUYvo8jnQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_l7WFpwh4fkWEXslGgWdsrg_11_2">32,620</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_38NjDFI5L0-3FlVS6nvthg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_VWROqx3R5EGnR5I23aevhA_11_4">31,660</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_8fDNx1qKbUiop-sR30AUtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_q2BXs7tAcEqF6S1sk6ZGag_12_2">1,321</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_mecr5EZecEGonKzTLPMcuA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_NjvCD3JLb0meFVUcchyDlQ_12_4">1,257</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_9d2A1tfQ0U-jNDnpaKT2ug" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_OYWhY8z7KEeJhHWRe4-IlA_13_2">591</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_10wEBbhXE0i7e7F3PRaiXA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_YxennAHNIESLi71aTsTLxA_13_4">531</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_rvEMMoDC00y6VOD4Xt6k7w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_HRzb7qL63UaEdz0Bqdl56Q_14_2">1,423</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_VRN0h6rvbkKRitpp1RHZ0w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_LvFsvTC8iE6EO5gD0S3vlw_14_4">1,206</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_o8aN_OvnA0WOkRVVrbmWLg_15_2">35,955</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" id="Tc_ntjhf1Pt_U-9N7sfyTXNkg_15_4">34,654</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_lk8WVgFaRkqN-OiVwc05LQ_16_2">11,400</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" id="Tc_ARdUZp1K1Um1trhIVQpw7g_16_4">10,817</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#x200B;</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_q8z84H858E-4Kq4v2NJzVQ_1_2"></a><a id="Tc_HCMhTEfXt0-JRcIbS0eSmQ_1_4"></a><a id="Tc_pDlDKOtQ5EO2ddkKaqUlRw_2_2"></a><a id="Tc_r6K7w7KhqUa0yW822d7PIw_2_4"></a><a id="Tc_voBMBgCqzESqx6Aept1gCw_3_0"></a><a id="Tc_AbjpfkRbEUOLyzvlojkNKA_4_0"></a><a id="Tc_vi0NruTpakm_ZnbtveiNYg_5_0"></a><a id="Tc_ICUVBUSjZ0epBhpfyX1bFQ_6_0"></a><a id="Tc_GE-t_El7UUKZy3cGTLLSgQ_7_0"></a><a id="Tc_ydbx5GdQuUixDkLei3_s5Q_9_0"></a><a id="Tc_HMxP3GNsU02lvSmze1QfoQ_10_0"></a><a id="Tc_3o8n6uUqzUS3O1suqYutEw_11_0"></a><a id="Tc_Zyh_kY1i_kq70eUPMsItwg_12_0"></a><a id="Tc_jyKX6JRKvUuvjF5RvXGUlg_13_0"></a><a id="Tc_ycMRZAdmPkqDn-Sa5Hl7zw_15_0"></a><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:IntangibleAssetsDisclosureTextBlock" id="Tb_6f54tuCvhkiM2nxvDagGoA" continuedAt="Tb_6f54tuCvhkiM2nxvDagGoA_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;9&#xA0;- Intangible Assets</b></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" id="Tb_ScpyD_GBVkCu9UxDSu99cA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_NhHWTTjKWUKaIx47t07K3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_Y1tRson3P0OaJ1D5E_ENGQ_4_2">266,481</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_uHyoEcUDJEKU4bbPWWLGug" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_007f_EuDqkCV6OGZu6W_mQ_4_4">251,402</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember__c_0Fqe_eUSGiDS4dt4L4w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_VZrREf5bEUmQyZ4m8miDgA_5_2">355,275</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_YwRWhpjCfkqbXp9akDu8IA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_nX3IoK43YUS6ujAKehOUxA_5_4">326,411</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ycKV5WOoakO_m-juiyY7bA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_a_j3ofZwGkiAFKwCReu-6Q_6_2">8,990</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_YDlDaiWMIU6cSFtE7NDx3A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_lU5MIBRiLEmqN0zqFhaqKA_6_4">9,038</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_pCNbRm9qUkqGGcbmxYAUpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_vsAzChJrXU2mjqsly1o-0Q_7_2">13,791</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_3O2Xh6XHKkmwdO2etZWiPw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_wGurP0FhNkqK5BeXGeBfrA_7_4">12,306</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_SghGtkCswUePBVyTgVbDpg_8_2">644,537</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="Tc_GC_TD4TCkk2hNdbguQNy1A_8_4">599,157</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated amortization</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_NhHWTTjKWUKaIx47t07K3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_4n8I4zT0qEWi8E_IXhMy2A_10_2">141,408</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_uHyoEcUDJEKU4bbPWWLGug" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_xYDt5IdGW0qbT7k24tmPoA_10_4">135,380</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember__c_0Fqe_eUSGiDS4dt4L4w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_KWmk_y6IGEG0-oeiYR7BYQ_11_2">234,197</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_YwRWhpjCfkqbXp9akDu8IA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_qLq3AHAdCEq5x1MHJu-GbQ_11_4">218,953</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ycKV5WOoakO_m-juiyY7bA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_0iWtnuvzSEKUMePNvkjR6Q_12_2">6,894</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_YDlDaiWMIU6cSFtE7NDx3A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_LqZSZSNz-Euqxa3sD75axw_12_4">6,677</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_pCNbRm9qUkqGGcbmxYAUpw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_OEOf02ba8U2LLK_diLfsOw_13_2">9,473</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_3O2Xh6XHKkmwdO2etZWiPw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_yqlhYFtGekacPb3wMqh1HA_13_4">8,538</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_Vi99N48KtEaE4rV9CWtIwg_14_2">391,972</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="Tc_5VL2q_-xsEWFLu9yWTpVsQ_14_4">369,548</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="Tc_---evFV1H0Sh3_muXa_MtA_15_2">252,565</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="Tc_aOVJ4jKRT0Cxzj8LCHhmYQ_15_4">229,609</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. The change in intangible assets during the six&#xA0;month period ended July&#xA0;31, 2022 is primarily due to the acquisitions of NetCHB, Foxtrot and XPS offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Intangible assets with a finite life are amortized into income over their useful lives. Amortization expense for existing intangible assets is expected to be </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="6" id="Narr_WvehG53bFUWZrS73YDDckA">252.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million over the following periods: </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" scale="6" id="Narr_-X-uE67AiU6i0t5-p9yDBg">29.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million for the remainder of 2023, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" scale="6" id="Narr_XlGyWuY84E-4U-QR5WAi7w">48.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million for 2024, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" scale="6" id="Narr_9JRenTa5OEmZChN-e_RcYA">45.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million for 2025, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" scale="6" id="Narr_-ASQejpFZ0S1VwEuH-SN7g">41.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million for 2026, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" scale="6" id="Narr_Ev1dj2vj002CuJIgC4Ewmg">26.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million </span></p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">54</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_6f54tuCvhkiM2nxvDagGoA_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">for 2027 and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="dsgx:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" scale="6" id="Narr_ODGEZpm-OUymwfYJw7RTpg">60.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes no future adjustments to acquired intangible assets.</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_bLQIxCyuP0KTmwQlY9Z-lg_1_2"></a><a id="Tc_gJyWGRNTsE2UbcqncIThMA_1_4"></a><a id="Tc_a7f8avIhhkuweKwJuKxLDA_2_2"></a><a id="Tc_ByWNSPT9i0acl2NRUKgkxw_2_4"></a><a id="Tc_ltfwm9jKkUqwpQqLlAJGEQ_3_0"></a><a id="Tc_5rQa8_BaGECcXnMgztvPgw_4_0"></a><a id="Tc_aGJQxAOUeUGc-OD59f8iUA_4_2"></a><a id="Tc_DAfAU-osA0exdZSIM1ck5A_5_0"></a><a id="Tc_2bqJ0zN8lU2A97S3d4TxPQ_5_2"></a><a id="Tc_M6hLOZFs70evSfjv0WzoOg_6_0"></a><a id="Tc_0U83cTNO10ezYj6tC9sRYg_6_2"></a><a id="Tc_2HPkefNf9USH_lr5w96dAA_7_0"></a><a id="Tc_H2Pg7Z-GD0q35Hk5-QLI4Q_7_4"></a><a id="Tc_TfjtQ6xNQUK6il8vAicirw_8_0"></a><a id="Tc_NW8o86n53Uafedk4_OVVUw_8_4"></a><a id="Tc_m3B233koGE6IcTroBBS1mQ_9_0"></a><a id="Tc_wchWECOx0kWsuDIu32rHuA_9_4"></a><a id="Tc_iUv87pnbD0a78ocq97GXCA_10_0"></a><a id="Tc_0Y-eBd7TcEGId6WfrpfGBQ_11_0"></a><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:GoodwillDisclosureTextBlock" id="Tb_sQZBP4YF9EmrhuXws32Q6g" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;10&#xA0;&#x2013; Goodwill</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Goodwill is recorded when the consideration paid for an acquisition of a business exceeds the fair value of identifiable net tangible and intangible assets acquired. The following table summarizes the changes in goodwill since January&#xA0;31, 2021:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfGoodwillTextBlock" id="Tb_mg_UAdOUW02O8m8ZQx9R9g" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_9F4Js57FOE62QM0_sFJGfw_3_2">608,761</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2021__kQXoKs9nka2lPH4vSYNEQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_PITHxChAaEGz_zF4ufctAg_3_4">565,177</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of QuestaWeb</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_L6Q5tEToZUWhso0DTYFOZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_glrRt2wruUyxWnFan6qbbg_4_4">21,691</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Portrix</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_h_C-Kly-a0ucy4VaYbFs6Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_Ogfo0Pa4WE2CNV4BDJeZ2Q_5_4">15,032</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of GreenMile</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_-t39gF7wsECdYI-YEspJVA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_2X5lXWh7-EqhYKRT1i257A_6_4">12,968</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of NetCHB</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_rPuS4uitD0K75xmU5HYffg_7_2">26,797</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Foxtrot</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_UjeVWj1jQEaRZOq-I18Tng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_M3_4qt5QlE6yTeTVtbFyOg_8_2">1,527</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of XPS</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" id="Tc_LqiilQBEakqkT7euT_2EvA_9_2">43,529</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Adjustments on account of foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments" sign="-" scale="3" id="Tc_u2QGH8_cP0K8C1Kv6_tmig_10_2">8,812</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_1_31_2022_6FniHWIdoEaqbZuSVaSgbA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments" sign="-" scale="3" id="Tc_Em1qrrsZ2kGfsVLaWEJF5g_10_4">6,107</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_MVfL11tzl0u506MSnrEo8g_11_2">671,802</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:Goodwill" scale="3" id="Tc_psw-kkODrk2MMEg_X7YsUw_11_4">608,761</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_e8ziLfzlb0ebfC9rpF--sQ_1_2"></a><a id="Tc_y4mUtTLhk0yzJv7PINPB5A_1_4"></a><a id="Tc_-zMeEHK8h0OiJgCIKTUyAA_2_2"></a><a id="Tc_-JyckjHxWUGVyq5rLsPxBw_2_4"></a><a id="Tc_2PSwc0lvQk2kK0vpEGot-Q_3_0"></a><a id="Tc_Xk4ks1lv_0OI7NjuRcrH5Q_4_0"></a><a id="Tc_Q5HJ6QSir0-A_aKab8kA0A_5_0"></a><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" id="Tb_w-Np0m5Ph0WadL7YaWYvCQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;11&#xA0;- Accrued Liabilities</b></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" id="Tb_TZgjannvt0GhcDwmRtnXyg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued compensation and benefits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" scale="3" id="Tc_mtbzLwcDnEiByrh2wFkD_Q_3_2">29,710</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" scale="3" id="Tc_9KoHn1mncEyGlgi4ndzk0Q_3_4">32,169</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued professional fees</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedProfessionalFeesCurrent" scale="3" id="Tc_eZmP5kCw4UqcTZS_YVu5hw_4_2">1,445</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedProfessionalFeesCurrent" scale="3" id="Tc_V7c8le2qMk62iTvcdtv1Og_4_4">1,318</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAccruedLiabilitiesCurrent" scale="3" id="Tc_01GdCd23wE264dT_cuy6jA_5_2">40,261</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherAccruedLiabilitiesCurrent" scale="3" id="Tc_l7xZi_PijUmKt_VFEAThaw_5_4">22,955</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="Tc_Fm9UIXTCi0uSRdq6jq8DsQ_6_2">71,416</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" id="Tc_Usc3HTXtLEaiQ4JcdaFlyA_6_4">56,442</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Other accrued liabilities include accrued expenses related to third party resellers and royalties, suppliers, accrued restructuring charges and accrued contingent acquisition purchase consideration.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:DebtDisclosureTextBlock" id="Tb_DYtN1RbrQ0quL0KDohFh-g" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;12&#xA0;&#x2013; Long-Term Debt</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have a senior secured revolving credit facility in place with a syndicate of lenders. The facility is a </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_5Tlo4Mm440Kh4zOEKiveOw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" id="Narr_SdKzyU5SC0-GfbJQaMK_4g">350.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million revolving operating credit facility to be available for general corporate purposes, including the financing of ongoing working capital needs and acquisitions. With the approval of the lenders, the credit facility can be expanded to a total of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_oxyILRxCUEu1L7yVm8LWeg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" id="Narr_APH4q1mxt0ONmHnsiqpWMg">500.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million. The credit facility has a </span><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_CreditFacilityAxis_dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_8EoJhpV3JkaHwSBGcVw7JA" format="ixt-sec:durwordsen" name="us-gaap:DebtInstrumentTerm" id="Narr_K8xffWcuvEOcMp058xGBzQ"><span style="font-family:'Verdana';">five-year</span></ix:nonNumeric><span style="font-family:'Verdana';"> maturity with no fixed repayment dates prior to the end of the </span><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_CreditFacilityAxis_dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_8EoJhpV3JkaHwSBGcVw7JA" format="ixt-sec:durwordsen" name="us-gaap:DebtInstrumentTerm" id="Narr_JISaBYcUBEe2WFU_W-pk1w"><span style="font-family:'Verdana';">five-year</span></ix:nonNumeric><span style="font-family:'Verdana';"> term ending January&#xA0;2024. Borrowings under the credit facility are secured by a first charge over substantially all of Descartes&#x2019; assets. Depending on the type of advance, interest rates under the revolving operating portion of the credit facility are based on the Canada or US prime rate, Bankers&#x2019; Acceptance (BA), US dollar London Interbank Offered Rate (LIBOR) or the Secured Overnight Financing Rate (SOFR) plus an additional </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_ZQWWnPjZ4kC4vtoza0sUuQ" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="Narr_ow3rogh_l0iisuYC8I-PXw">0</ix:nonFraction></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_3hEr1zcNckuzwGc5-3PeAA" decimals="4" format="ixt:numdotdecimal" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-4" id="Narr_n555riva-UGQRgSXeCme4Q">250</ix:nonFraction></span><span style="font-family:'Verdana';"> basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit agreement. A standby fee of between </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_C96Dr75OjU-nPOSi3ga22Q" decimals="4" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-4" id="Narr_JKmuUbs1HEe0Gb437o8zCA">20</ix:nonFraction></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_BuF-t3Bz_kGIMG3EfyvcZQ" decimals="4" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-4" id="Narr_E24OU31ZXEOe32t_mmNtbQ">40</ix:nonFraction></span><span style="font-family:'Verdana';"> basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_X7rdlViRlEStVH72jDoPjw" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:LineOfCredit" scale="6" id="Narr_Ly7oaJ3K_0-UaighIm7WBw">No</ix:nonFraction></span><span style="font-family:'Verdana';"> amounts were drawn on the credit facility as of July&#xA0;31, 2022 and the balance of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_X7rdlViRlEStVH72jDoPjw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity" scale="6" id="Narr_1fNphdO77k-B8McwSswhsQ">350.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million is available for use. We were in compliance with the covenants of the credit facility as of July&#xA0;31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">As at July&#xA0;31, 2022, we had outstanding letters of credit of approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LettersOfCreditOutstandingAmount" scale="6" id="Narr_6T_Pu9jQ0EuUCG8Pun8Ctg">0.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:LettersOfCreditOutstandingAmount" scale="6" id="Narr_9kwHvzc800ObJUkP9M9jAA">0.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million as at January&#xA0;31, 2022), which were not related to our credit facility.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">55</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_zt3sJqG3RkWSfB9EWPsebA_1_2"></a><a id="Tc_s6bFqIaOakmgCR4Zeh-FtQ_1_6"></a><a id="Tc_9kB19jXkF02z0vX3DKryYg_2_2"></a><a id="Tc_Fpm2F8Vcp0-ElzYVxg6U9g_2_4"></a><a id="Tc_iPHQtKzBQkCMkefYjgKQPw_2_6"></a><a id="Tc_SfhiKkQ9TkqrHTeeny0lsQ_2_8"></a><a id="Tc_K9lj1DPgxk6xY-79Yo2iHQ_3_2"></a><a id="Tc_HP9bFbVRp0uZ3hHR8uT7zA_3_4"></a><a id="Tc_zaP5xpOgi02fT2-nTXsdqQ_3_6"></a><a id="Tc_eNyNYAwT2k-GPPpqMB2WIQ_3_8"></a><a id="Tc_i3chScsJHkO0o7UmQ8CgcA_5_0"></a><a id="Tc_mY2hYqx29Euk55PVlFz3hg_6_0"></a><a id="Tc_I7HbIOHhoUGf_v_hY3NKvA_7_0"></a><a id="Tc_QKN3h0t8Y0GataCI6b-88w_1_2"></a><a id="Tc_pCN6ABay3EehZwKJZVFaXw_1_6"></a><a id="Tc_mq6y4EOYn0uhGis1My0boA_2_2"></a><a id="Tc_9LVRrY-coE2w5o4GFlv0uQ_2_4"></a><a id="Tc_3USNhbXUf0mHMNrJC1m3Rg_2_6"></a><a id="Tc_GGvxxJZNCkym38X2VE3Apg_2_8"></a><a id="Tc_AVyGz1NjbEe--tkoULrWOg_3_2"></a><a id="Tc_Qlf-3jMeRUGpdSAe_F4EJQ_3_4"></a><a id="Tc_NQ7jozfAE0yblSxuJkydlQ_3_6"></a><a id="Tc_rF1dj7slbUSJUuftcwLU0Q_3_8"></a><a id="Tc_J-Q8mUUR3kObTXzW082qfQ_5_0"></a><a id="Tc_39ANT_9ttkivVZS7ybi3Iw_6_0"></a><a id="Tc_0p-n1ZVGaEOCpf-671eMfA_1_2"></a><a id="Tc_a7J7PK3pNkWukz4pN8EnEQ_1_4"></a><a id="Tc_w1HvMw7t-kaWPJyM2vdubQ_2_2"></a><a id="Tc_Az0WQNI5y0Opc0UTC2vbVg_2_4"></a><a id="Tc_uq6gB1utv06-2REsffFqpQ_3_0"></a><a id="Tc_u5htb5PK4kSCNYQvcUsljw_4_0"></a><a id="Tc_haWDJLr7_0yjqqWCBptyzg_1_2"></a><a id="Tc_YQtcnSft0U-DNysO6fr0hA_2_0"></a><a id="Tc_RjpKgJGrDUe5NdBApGRT2Q_2_2"></a><a id="Tc_vvTLyJkSd0ScIxlJcE5jOw_3_0"></a><a id="Tc_Jx9w8sgqBkiUSXlNgVXZ7A_4_0"></a><a id="Tc_OPg46K_urUq3pn5i_nUBmg_5_0"></a><a id="Tc_tjmKCSYDOU6nq5gXScZ0ew_6_0"></a><a id="Tc_faqI8i8AbEG6LJlECge2Sg_7_0"></a><a id="Tc_hte3OggGA0uHbaIB4GSlGg_8_0"></a><a id="Tc_FM2e22pgNUudqsASqIbZ9A_9_0"></a><a id="Tc_nr-MmfYjyUqRMV88h2L0MQ_10_0"></a><a id="Tc_M_mHQlMV2UurecaKk-txFA_11_0"></a><a id="Tc_cg5o1iy-ekmZ5W3C37NvWA_12_0"></a><a id="Tc_4Gu6CLFJnk6SS310dqzouQ_13_0"></a><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:LesseeOperatingLeasesTextBlock" id="Tb_Qxde7tchhE-gz3xeH5wk2A" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;13&#xA0;&#x2013; Leases</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to </span><ix:nonNumeric contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" format="ixt-sec:durwordsen" name="us-gaap:LesseeOperatingLeaseRemainingLeaseTerm" id="Narr_9DGu5SXiDE6p-96BOt2bWA"><span style="font-family:'Verdana';">7&#xA0;years</span></ix:nonNumeric><span style="font-family:'Verdana';">, some of which include options to extend the leases for up to </span><ix:nonNumeric contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" format="ixt-sec:durwordsen" name="us-gaap:LesseeOperatingLeaseRenewalTerm" id="Narr_WZkb8GbhiUWl0Ax96zsZWg"><span style="font-family:'Verdana';">5&#xA0;years</span></ix:nonNumeric><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The components of operating lease expense were as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:LeaseCostTableTextBlock" id="Group_Tc91HEqX4EWgoyBozxLjvg" continuedAt="Group_Tc91HEqX4EWgoyBozxLjvg_2" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#xA0;Months&#xA0;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="3" id="Tc__GMkDCEXzEKoz5kflGHzNg_5_2">1,078</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="3" id="Tc_leQtI8Yp70qb4i1L_8DVwA_5_4">1,122</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="3" id="Tc_pFp5QAIbwEiC5Mbt_cEMrg_5_6">2,143</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseCost" scale="3" id="Tc_5DQhFIXEOUalBg7ilyvpKA_5_8">2,215</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Short-term lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShortTermLeaseCost" scale="3" id="Tc_8Y5ET7vKs0mAbEtCwoL-Pw_6_2">150</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShortTermLeaseCost" scale="3" id="Tc_Sr_dlb1FAEGCYcCbRNdchg_6_4">53</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShortTermLeaseCost" scale="3" id="Tc_0_8F9kFxcEqOh70ZEHrk3w_6_6">299</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ShortTermLeaseCost" scale="3" id="Tc_yKET5Vt-UE2swgVrQSuKSQ_6_8">170</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="3" id="Tc_AEOQWN8txEal9hqPNuPsmQ_7_2">1,228</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="3" id="Tc_9ARG-6A3uUWzIxy7DnJ5uA_7_4">1,175</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="3" id="Tc_36CQtId0AkCeUu5-H8t4zQ_7_6">2,442</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LeaseCost" scale="3" id="Tc_vG4f3dO6vUKVVWuq5AoajQ_7_8">2,385</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Supplemental cash flow information related to operating leases was as follows:</span></p><ix:continuation id="Group_Tc91HEqX4EWgoyBozxLjvg_2" continuedAt="Group_Tc91HEqX4EWgoyBozxLjvg_3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#xA0;Months&#xA0;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating cash outflows from operating leases included in measurement of lease liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_D4UGHnyLu0Oe3jiJGpsCqQ_5_2">1,148</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_kzFuHbERqkqArPt8Nq-_5Q_5_4">1,358</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_ZImsDinJXkev8i_h5uYIIQ_5_6">2,264</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeasePayments" scale="3" id="Tc_EXmqyEKvf0aBonW76JgaTA_5_8">2,560</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">New ROU assets obtained in exchange for lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_3YvibjgokUueaE3bjFpVyA_6_2">122</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_lBO_jWeozkezKy8BxU_lBw_6_4">833</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_wS1Yaw11b0CECCsxcDTJzg_6_6">346</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" id="Tc_ub5g3JQLS0GK5CElEvysWg_6_8">1,161</ix:nonFraction></span></p></td></tr></table></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Supplemental information related to operating leases was as follows:</span></p><ix:continuation id="Group_Tc91HEqX4EWgoyBozxLjvg_3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average remaining lease term (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" format="ixt-sec:duryear" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Tc_7y0Fl5vMrEShd3Rq4ZU_GA_3_2"><b style="font-family:'Verdana';font-weight:bold;"> 2.9</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" format="ixt-sec:duryear" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Tc_36wafJ5uN0uA2lIeFJ53MQ_3_4"><span style="font-family:'Verdana';"> 3.3</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average discount rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="Tc_KUCiQ0_M10m7yTT1N7Tm6A_4_2">2.2</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="Tc_oAIYHytU4kGR9ndS2nT22g_4_4">2.1</ix:nonFraction></span></p></td></tr></table></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Maturities of operating lease liabilities were as follows as of July&#xA0;31, 2022:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="Tb_V0cOKmnUMk-joZXEXXH2rw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:86.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Operating</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Years Ended January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Leases</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 5.75pt;"><span style="font-family:'Verdana';">Remainder of 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear" scale="3" id="Tc_tJt1DCAF4USYlGhar5gz5A_3_2">2,003</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" scale="3" id="Tc_tvsIqiuuSkWbSc7sZNslEA_4_2">3,349</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" scale="3" id="Tc_hMGPXVTLfEeyaDLgmndaAQ_5_2">2,299</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2026</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" scale="3" id="Tc_2zGhC7I-gU-LkjsVTGYToA_6_2">929</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2027</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" scale="3" id="Tc_slwklbtYZECSa7-dR4J-5A_7_2">308</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2028 and thereafter</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="dsgx:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour" scale="3" id="Tc_h0H-TWUEwU2XmI9R3Dr6YA_8_2">178</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" scale="3" id="Tc_zyq-FMIbkUifxPxGcNUWWQ_9_2">9,066</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Less: imputed interest</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" scale="3" id="Tc_-0xrQ6aIVEqgWnt02Yj77g_10_2">368</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiability" scale="3" id="Tc_8O2cUGo1CEqK6tU1i_yc8g_11_2">8,698</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" id="Tc_CIZJX-QTSECUMiagRPPTUw_12_2">3,604</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" id="Tc_K9LvUWBHZU2znjbyopTKxg_13_2">5,094</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">56</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock" id="Tb_raeWmy__p0OglK8b9rvuqg" continuedAt="Tb_raeWmy__p0OglK8b9rvuqg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;14&#xA0;- Commitments, Contingencies and Guarantees</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Commitments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As described in Note&#xA0;2 to the audited consolidated financial statements for 2022 included in our 2022 Annual Report, we maintain deferred share unit (&#x201C;DSU&#x201D;) and cash-settled restricted share unit (&#x201C;CRSU&#x201D;) plans for our directors and employees. Any payments made pursuant to these plans are settled in cash. For DSUs and CRSUs, the units vest over time and the liability recognized at any given consolidated balance sheet date reflects only those units vested at that date that have not yet been settled in cash. As such, we had an unrecognized aggregate liability for the unvested DSUs and CRSUs of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-5" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" scale="6" id="Narr_8Z6QRUDCN0GinIAgURbMyg">0.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-5" format="ixt:numdotdecimal" name="dsgx:CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" scale="6" id="Narr_FUHXQ0MVW0O9kY9o_H3BRg">1.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million, respectively, at July&#xA0;31, 2022. The ultimate liability for any payment of DSUs and CRSUs is dependent on the trading price of our common shares. To partially offset our exposure to fluctuations in our stock price, we have entered into equity derivative contracts, including floating-rate equity forwards. As at July&#xA0;31, 2022, we had equity derivatives for </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="INF" format="ixt:numdotdecimal" name="dsgx:DerivativeInstrumentSharesOfCommonStockHeld" scale="0" id="Narr_eQtUOhhcHUGoaezONXCGoA">281,768</ix:nonFraction></span><span style="font-family:'Verdana';"> Descartes common shares and a DSU liability for </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="INF" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitLiabilityNumberOfCommonShares" scale="0" id="Narr_lVasi_LBbEe5iSvjT60ETQ">281,768</ix:nonFraction></span><span style="font-family:'Verdana';"> Descartes common shares, resulting in minimal net exposure resulting from changes to our share price.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Contingencies</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are subject to a variety of other claims and suits that arise from time to time in the ordinary course of our business. The consequences of these matters are not presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate potential liability is not currently expected to have a material effect on our results of operations or financial position.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Product Warranties</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we provide our customers with product warranties relating to the performance of our hardware, software and services. To date, we have not encountered material costs as a result of such obligations and have not accrued any liabilities related to such obligations in our condensed consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Business combination agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In respect of our acquisitions of Kontainers, ShipTrack, GreenMile, NetCHB and XPS, up to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_XsbBqKi2rE2r74EqkdhjVQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" scale="6" id="Narr_lI6K1-_f1EulRuXr8fqhsA">157.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million in cash may become payable if certain revenue performance targets are met in the </span><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_C9U7QPU_RUCt3x_oI08wPg" format="ixt-sec:durwordsen" name="dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="Narr_vVqTfV5mxEi7bpH5DRvUyg"><span style="font-family:'Verdana';">two&#xA0;years</span></ix:nonNumeric><span style="font-family:'Verdana';"> following the acquisition. </span><span style="font-family:'Verdana';">A balance of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_XsbBqKi2rE2r74EqkdhjVQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationLiability" scale="6" id="Narr_ANfo3MSXcEq9OciENnm7iQ">27.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million is accrued related to the fair value of this contingent consideration as at July&#xA0;31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Guarantees</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of business, we enter into a variety of agreements that may contain features that meet the definition of a guarantee under ASC Topic 460, &#x201C;Guarantees&#x201D;. The following lists our significant guarantees:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Intellectual property indemnification obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by third parties arising from the use of our products. In the event of such a claim, we are generally obligated to defend our customers against the claim and we are liable to pay damages and costs assessed against our customers that are payable as part of a final judgment or settlement. These intellectual property infringement indemnification clauses are not generally subject to any dollar limits and remain in force for the term of our license agreement with our customer, which license terms are typically perpetual. Historically, we have not encountered material costs as a result of such indemnification obligations.</span></p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">57</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_raeWmy__p0OglK8b9rvuqg_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Other indemnification agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we enter into various agreements that provide general indemnities. These indemnities typically arise in connection with purchases and sales of assets, securities offerings or buy-backs, service contracts, administration of employee benefit plans, retention of officers and directors, membership agreements, customer financing transactions, and leasing transactions. In addition, our corporate by-laws provide for the indemnification of our directors and officers. Each of these indemnities requires us, in certain circumstances, to compensate the counterparties for various costs resulting from breaches of representations or obligations under such arrangements, or as a result of third party claims that may be suffered by the counterparty as a consequence of the transaction. We believe that the likelihood that we could incur significant liability under these obligations is remote. Historically, we have not made any significant payments under such indemnities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In evaluating estimated losses for the guarantees or indemnities described above, we consider such factors as the degree of probability of an unfavorable outcome and the ability to make a reasonable estimate of the amount of loss. We are unable to make a reasonable estimate of the maximum potential amount payable under such guarantees or indemnities as many of these arrangements do not specify a maximum potential dollar exposure or time limitation. The amount also depends on the outcome of future events and conditions, which cannot be predicted. Given the foregoing, to date, we have not accrued any liability in our condensed consolidated financial statements for the guarantees or indemnities described above.</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" id="Tb_dXIjrfXJGUuTd3mKs-sRRg" continuedAt="Tb_dXIjrfXJGUuTd3mKs-sRRg_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;15&#xA0;&#x2013; Share Capital</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July&#xA0;16, 2020, we filed a final short-form base shelf prospectus (the &#x201C;2020 Base Shelf Prospectus&#x201D;), allowing us to offer and issue the following securities: (i)&#xA0;common shares; (ii)&#xA0;preferred shares; (iii)&#xA0;senior or subordinated unsecured debt securities; (iv)&#xA0;subscription receipts; (v)&#xA0;warrants; and (vi)&#xA0;securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. The aggregate initial offering price of securities that may be sold by us (or certain of our current or future shareholders) pursuant to the 2020 Base Shelf Prospectus during the </span><ix:nonNumeric contextRef="Duration_7_16_2020_To_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_9LgcrpS3ukSQ1CCrr0Y10w" format="ixt-sec:durmonth" name="dsgx:ShelfProspectusPeriod" id="Narr_xLvV2Wk-1UWldak-yw8Ojg"><span style="font-family:'Verdana';">25</span></ix:nonNumeric><span style="font-family:'Verdana';">-</span><span style="font-family:'Verdana';">month period that the 2020 Base Shelf Prospectus, including any amendments thereto, remains valid was limited to an aggregate of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_Nwn-TiE_lkKwtV7AsYtq2w" decimals="-9" format="ixt:numdotdecimal" name="dsgx:ShelfProspectusMaximumAmount" scale="9" id="Narr__7kE--9uGkOXlC_FW9C8kg">1</ix:nonFraction></span><span style="font-family:'Verdana';"> billion. </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_7_16_2020_To_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_9LgcrpS3ukSQ1CCrr0Y10w" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" scale="0" id="Narr_XcStZEyOikCtZTj6Fh0MAA">No</ix:nonFraction></span><span style="font-family:'Verdana';"> securities were sold pursuant to the 2020 Base Shelf Prospectus, which was withdrawn in July&#xA0;2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July&#xA0;15, 2022, we filed the 2022 Base Shelf Prospectus, allowing us to offer and issue an unlimited quantity of the following securities during the </span><ix:nonNumeric contextRef="Duration_7_15_2022_To_7_15_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_ShelfProspectusMember_i6pyt466SE63916yJIm3lw" format="ixt-sec:durmonth" name="dsgx:ShelfProspectusPeriod" id="Narr_O26XZvXX-ECebYkcuVqBPw"><span style="font-family:'Verdana';">25</span></ix:nonNumeric><span style="font-family:'Verdana';">-month period following thereafter: (i)&#xA0;common shares; (ii)&#xA0;preferred shares; (iii)&#xA0;senior or subordinated unsecured debt securities; (iv)&#xA0;subscription receipts; (v)&#xA0;warrants; and (vi)&#xA0;securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_7_15_2022_To_7_15_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_ShelfProspectusMember_i6pyt466SE63916yJIm3lw" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" scale="0" id="Narr_x3hU50T3NkWDR3cLywGlDw">No</ix:nonFraction></span><span style="font-family:'Verdana';"> securities have yet been sold pursuant to the 2022 Base Shelf Prospectus.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On June&#xA0;7, 2022, Descartes announced a NCIB, commencing June&#xA0;10, 2022, to purchase up to approximately </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_6_7_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_NcibMember_p3VADXYsnkOmra0hT-olgg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" scale="6" id="Narr_fGC_gdA0kEOC411J9UW6OA">7.4</ix:nonFraction></span><span style="font-family:'Verdana';"> million common shares in the open market for cancellation. Under the NCIB, Descartes would be permitted to repurchase for cancellation, at its discretion on or before June 9, 2023, up to </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_6_7_2022_To_6_7_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_NcibMember_RAmCuWCVF0WQXKHFuf7B2A" decimals="2" format="ixt:numdotdecimal" name="dsgx:MaximumPercentageOfSharesToBeRepurchased" scale="-2" id="Narr_-jz9-9a4BUKV9m7It1zeaQ">10</ix:nonFraction>%</span><span style="font-family:'Verdana';"> of the &#x201C;public float&#x201D; (calculated in accordance with the rules&#xA0;of the TSX) of Descartes&#x2019; issued and outstanding common shares. Any purchases under the NCIB will be subject to the terms and limitations applicable to such NCIB, and will be made through the facilities of the TSX, Nasdaq, other designated exchanges and/or alternative Canadian trading systems, or by such other means as may be permitted by the Ontario Securities Commission or other applicable Canadian Securities Administrators. </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_6_7_2022_To_6_7_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_NcibMember_RAmCuWCVF0WQXKHFuf7B2A" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" scale="0" id="Narr_r-k1CaRaLUul-gkhVXmelQ">No</ix:nonFraction></span><span style="font-family:'Verdana';"> common shares have yet been purchased pursuant to the NCIB.</span></p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">58</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_dXIjrfXJGUuTd3mKs-sRRg_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">For the three and six&#xA0;month periods ended July&#xA0;31, 2022, cash flows provided from stock options and share units exercised were </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="6" id="Narr_YpwBMMgUlE6tVCGNlMKu7g">0.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="6" id="Narr_rv7ZyfZvnEKHdxetuKsrUQ">0.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million, respectively, compared to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="6" id="Narr_zOIVgsSZe0GBSODQxmCC6w">0.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ProceedsFromStockOptionsExercised" scale="6" id="Narr_QI_gsMXFD0mWxkFQCrwW_w">1.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million the same periods in fiscal 2022, respectively.</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="_a53253ad_f2a8_4acd_a25d_1d50cd0e578a"></a><a id="Tc_ZitPOIGjVUqkX1Sg6asurg_1_2"></a><a id="Tc_JKEqueSU9kS_bG3U2Zb4CA_1_6"></a><a id="Tc_Hn8lT_HOvkS-XIsFW_Uh3w_2_2"></a><a id="Tc_tR49kjQzE0Gq87GeQfCRSw_2_4"></a><a id="Tc_M2ODDufYF0Cak5LFK9f6zA_2_6"></a><a id="Tc_oykpeFHzjUqxoctVtkWHEA_2_8"></a><a id="Tc_LZKNdfrpoEeZxp1YYwqtLg_3_2"></a><a id="Tc_bfN5p_eTwkC2Cqjk-c3RWA_3_4"></a><a id="Tc_DvixRw4LQ0a2k2wBZxpn0Q_3_6"></a><a id="Tc_4iix7ivb9kW9awx6VdMROA_3_8"></a><a id="Tc_SJd1KrJurkSK06BgcqAjjw_5_0"></a><a id="Tc__lUOOYe8xEue5YKIqRU6OA_7_0"></a><a id="Tc__ksZh01BM02S5kr90vKzlA_8_0"></a><a id="Tc_iPm0QjaEKEO7fY5MO7jieQ_9_0"></a><a id="Tc_RB5f-c6fkUKX7corn2VBPA_10_0"></a><a id="Tc_jpyerGY7CkydLrPwUPx9yA_11_0"></a><a id="Tc_E4v7FFhYyEC-z9OgUMGWgQ_12_0"></a><a id="Tc_MkFvl4Tkp0SsIP8Wv3vE4w_13_0"></a><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:EarningsPerShareTextBlock" id="Tb_Bl7a07b3FECMIhq_bhIKwg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;16&#xA0;- Earnings Per Share</b></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" id="Tb__XhIm2MjG0qcXn7d2bXaNA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table sets forth the computation of basic and diluted earnings per share (&#x201C;EPS&#x201D;) (number of shares in thousands):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.09%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#xA0;Months&#xA0;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.1%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income for purposes of calculating basic and diluted earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_xYVNQxXGWk-Md8CHOcqgKw_5_2">22,902</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_7LFFSvL3sUKaIeCssKMPEA_5_4">23,176</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_Bu1S2QM_pEicn69UYrYGdg_5_6">46,017</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NetIncomeLoss" scale="3" id="Tc_3-mBUkdiRESKLfv6_wsplw_5_8">41,597</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_esHano1Bx0eau5sr0LUFmA_7_2">84,783</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_8PG55lPNx0uMrPGrQLGcAw_7_4">84,566</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_kIdzKBLSnU-6SGdEzDfEsg_7_6">84,774</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" id="Tc_8p7_1uL5xUuu8ckXJYtKZw_7_8">84,534</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of employee stock options</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_gKtXqmCtHEy0rsHiVP-Smw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_IGuRof2Yfk25t6CtyL6fiQ_8_2">401</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_prUnCE0vHU2CZlObbI7c3A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_Fnr2EROVmEC3KvVnpovdnA_8_4">421</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember__ZKuFHdJIUuHMkN80GGSYQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_XfAcj9xeYUiecA7yCquzGA_8_6">433</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_8ld1rLDRxkauUyyOv5MDHA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_ymYekbk0ZUGsG2JA-HZo8Q_8_8">417</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of restricted and performance share units</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Q4k64j2ck0SOPLIylYgG8w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc__CCxsRsi3kyuZ5rJ7y-KEw_9_2">1,154</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_qKEQbeCwuEWW42gy5p0DKQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_9HIzVO5FM0622HzolmBkRg_9_4">1,141</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_tAQkKpGoaEKPBc_oEprp9w_9_6">1,137</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_dI9hliU8u0aWn49nyDCxmg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" scale="3" id="Tc_lPyKVaGbmUWL_S0leYqxqw_9_8">1,115</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average common and common equivalent shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_o0wPXCsPa0qny7w2OWHHXg_10_2">86,338</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_ZBtfazrIaUGHMZUVeOSlNQ_10_4">86,128</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_1NLWo9y2EkyPFduWnOUIfw_10_6">86,344</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" id="Tc_6A84Mf1I9UigI2MMkNChoA_10_8">86,066</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_7bgP5JJYXkazoLIMudPa4Q_12_2">0.27</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_6L4riMrVyUq5tk7Y8O_xZA_12_4">0.27</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_R0QEw1DJzEmezHWUeZi4ZQ_12_6">0.54</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareBasic" scale="0" id="Tc_fXVP2XdqkUOwtuxlbMSoXA_12_8">0.49</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_L7DNwYKsoUGx6hq3XWLRFQ_13_2">0.27</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_iGZaZk9T-0SvWIi0nlNxKA_13_4">0.27</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_0iKrJy17yEiPio5-kktgbA_13_6">0.53</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="2" format="ixt:numdotdecimal" name="us-gaap:EarningsPerShareDiluted" scale="0" id="Tc_mXx2NjIQuEmnKBqtwbPagA_13_8">0.48</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the three&#xA0;month periods ended July&#xA0;31, 2022 and July&#xA0;31, 2021, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_U28XRtBbs0muZk8nwV65Qw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_Dpx01Ldvz0Oelmm0TUkQZw">501,494</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_T-Hh_4r-0EilKfJca4OPYw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_SJC0j0yBYEq264eZyqapLA">248,505</ix:nonFraction></span><span style="font-family:'Verdana';"> options, respectively, were excluded from the calculation of diluted EPS as those options had an exercise price greater than or equal to the average market value of our common shares during the applicable periods and their inclusion would have been anti-dilutive. For the three&#xA0;month periods ended July&#xA0;31, 2022 and July&#xA0;31, 2021, the application of the treasury stock method excluded </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_Ljk9gnkYv0uPaFwxEUDYYQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_MpgRSaMpeUqYLhIp0B7jag">135,776</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_n9nqHO6VTUSFL303QTkaqQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_jMGCuRgVmE6ToTAIyuALmA">91,081</ix:nonFraction></span><span style="font-family:'Verdana';"> stock options, respectively, from the calculation of diluted EPS as the assumed proceeds from the unrecognized stock-based compensation expense of such options that are attributed to future service periods made such options anti-dilutive.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the six&#xA0;month periods ended July&#xA0;31, 2022 and July&#xA0;31, 2021, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_d3OVZMS_mEuCZt7lNdssIg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_sSiWIw3ylUq944KlmR_C1A">6,960</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_-9Xns5fe8kyNihKddZEjtQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_KWmIecsEwUil5zihFu3PCg">248,505</ix:nonFraction></span><span style="font-family:'Verdana';"> options, respectively, were excluded from the calculation of diluted EPS as those options had an exercise price greater than or equal to the average market value of our common shares during the applicable periods and their inclusion would have been anti-dilutive. For the six&#xA0;month periods ended July&#xA0;31, 2022 and July&#xA0;31, 2021, the application of the treasury stock method excluded </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_f3x1loSyykWR7KebNXxfpQ" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_k944LPxBl0yxCzb1-if61A">630,310</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_4Ji9IXYRNUSjeGWZHHngCw" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_2DyRzjd9WU-uurORelAlJw">91,081</ix:nonFraction></span><span style="font-family:'Verdana';"> stock options, respectively, from the calculation of diluted EPS as the assumed proceeds from the unrecognized stock-based compensation expense of such stock options that are attributed to future service periods made such stock options anti-dilutive.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the three&#xA0;month periods ended July&#xA0;31, 2022 and July&#xA0;31, 2021, the application of the treasury stock method excluded PSUs and RSUs of </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_38FZhPckMEWtoFafv9utdg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_L1aRrhr3XkiMewVSQh4kDQ">97,991</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_GOd_19LxTkavOI2wfz95Jg" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_BYswUDa7oEmHh5XvrVYiEw">77,441</ix:nonFraction></span><span style="font-family:'Verdana';">, respectively, from the calculation of diluted EPS as the unrecognized stock-based compensation expense of such PSUs and RSUs that are attributed to future service periods made such PSUs and RSUs anti-dilutive.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">For the six&#xA0;month periods ended July&#xA0;31, 2022 and July&#xA0;31, 2021, the application of the treasury stock method excluded PSUs and RSUs of </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_K0dMOw3VzUa5f3G4Caw9OA" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_9BFbpH3qIkWYTuA23bQhQQ">nil</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_9tSHiegeAkacW64g2wUp3Q" decimals="INF" format="ixt:numdotdecimal" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="Narr_wcDZd1QiQU2hWPRa4riCTw">77,441</ix:nonFraction></span><span style="font-family:'Verdana';">, respectively, from the calculation of diluted EPS as the unrecognized stock-based compensation expense of such PSUs and RSUs that are attributed to future service periods made such PSUs and RSUs anti-dilutive.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">59</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_M6dlCYN-r0mxUuo6cCdXlg_1_2"></a><a id="Tc_ahpYI2cM_UCf3r2-3FfHEQ_1_6"></a><a id="Tc_4f37R3-g8k6b2myWujiVng_2_2"></a><a id="Tc_mh2qSAMEHUSrKbnTp02hYA_2_4"></a><a id="Tc_Jdv61mEngEyAKdBq97oBDQ_2_6"></a><a id="Tc_b1LUss3zb0GRw72yuGKIAQ_2_8"></a><a id="Tc_Ipl5Qs1JwUeen9t6ejvxxA_3_2"></a><a id="Tc_lT1d9Fhv00-iGcZ7m_m-aw_3_4"></a><a id="Tc_dtA1MlPcBE6nZcUSf_S0Hg_3_6"></a><a id="Tc_uHVyOjJ8BUCr1dLwgpMdhg_3_8"></a><a id="Tc_fo8jCUcZIUileAufRzGUlw_5_0"></a><a id="Tc_7LktRUn8mU-TGgp-Y19l0Q_6_0"></a><a id="Tc_8gaN7DPk8EyOip9npQfcqw_7_0"></a><a id="Tc___lAb7vI10m7flpD_b-OxQ_8_0"></a><a id="Tc_-qLwC5aRVEewNmwXK8t1_g_9_0"></a><a id="Tc_ADv4uteVIkuahv81FXVAwQ_1_2"></a><a id="Tc_dRDafvk1QUSJFWOk6nMLUA_2_2"></a><a id="Tc_W_iHkExwDECCWprg6Lh7ow_2_4"></a><a id="Tc_wQTMLrsrnEuKe_TIOtzHSA_3_2"></a><a id="Tc_HbdIKpiFW0iv2QgvRJQ_tg_3_4"></a><a id="Tc_naAABZprK0ux_Dkn3QkCQg_4_0"></a><a id="Tc_mzozDNQUbUKE_101h-JWAw_4_2"></a><a id="Tc_0p-g-Da92E-LhF7xnWqjxA_4_4"></a><a id="Tc_mgWo4x-cyEavjKQ6VgY6cg_5_0"></a><a id="Tc_yfioUpONXU2EtaG4AyvQ1A_6_0"></a><a id="Tc_eciUEyc-kkmemd0Un0oOcw_7_0"></a><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="Tb_rbXGGCinm0GzKw-IxouXNA" continuedAt="Tb_rbXGGCinm0GzKw-IxouXNA_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;17&#xA0;- Stock-Based Compensation Plans</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Total estimated stock-based compensation expense recognized in our condensed consolidated statement of operations was as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" id="Tb_YpH83Es0W0GNi_SlRC8uhA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#xA0;Months&#xA0;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cost of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_5ZjgfwxQ9kKeGsbBNwhZSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_l9XmLhEfdkKmNZ9PZUCbvg_5_2">254</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_zOkqDq1YqkqEBgq3qiIRZg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_Q57G1jKwikCoRkC_c4dOWg_5_4">199</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_cEHL2mrLr0ubBY4lGGzQCg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_S8z7kOkT3UGxfb2Bs_CarA_5_6">449</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_ZDrTvwcgTU-FjwM-oOw_JA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_358bK1gzC0CPqVhntHfguw_5_8">343</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Sales and marketing</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_EWhDl7ZVq0mCz3exeypa3w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_7PsnAOiV3EqmgcpqHsmqtQ_6_2">675</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_twm-9YcOLE2Hg0GKqFe7QA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_xNerhSSzkEOKJYTeADapeQ_6_4">918</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_Un26geBFQUmm51U5nbRQMw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_efs3cszcx066Rt5wHMOrQw_6_6">1,160</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_iG_J76izmUyc5RJ9s8njPg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_5h988Iau0UqDnhDy71IDuA_6_8">1,279</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Research and development</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_aTKnyMu5u0ejEEjX7YbwUQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_E1c4VpHNxEebmEom5QVa4g_7_2">490</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_DTHJ6vl5_EOgIujhxjq3lw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_Biea3KdSHkCRN9Ow0Lz7Pw_7_4">388</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_aghjWuxy_k6oZu79HpTW8A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_TYi13A9o_Em8EtWmjKd2Rw_7_6">857</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_joDTZT4GSUCcdfOMtuwScQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_S0D9t6b44kKInYj17D-_Qw_7_8">668</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">General and administrative</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_u8Eak7lD3EC3U2Nh5WI3gw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_WZpWtz8fekOYSClieUrwRg_8_2">2,317</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_QjMMSpUPzUarN6J1mlT5hA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_EItYDyHK-UqZUkVY-ca2cg_8_4">1,510</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_YliF3vhnP0iE11BzFydcBg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_BhjBtOFW2EunN_Sw7h6RIg_8_6">4,057</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_EbAIlI12WUa-adjEMKumIQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_DTNni7HHa0SLXnBj7fHfew_8_8">2,877</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Effect on net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_3g8ctX8AnE-3-JoMKk7XPQ_9_2">3,736</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_g2xX0o8BjkyeiUxZz6xgEw_9_4">3,015</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_8tbaVi1yNkesEHHArhOp9A_9_6">6,523</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" id="Tc_hT4sph2WB0yJWIQ2pYJzgw_9_8">5,167</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Differences between how GAAP and applicable income tax laws treat the amount and timing of recognition of stock-based compensation expense may result in a deferred tax asset. We have recorded a valuation allowance against any such deferred tax asset except for </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" scale="6" id="Narr_mdNlK1QoREKcmBL9kwCTYw">0.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" scale="6" id="Narr_efITTH_qBk2vZ3fG-3VzqQ">0.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million at January&#xA0;31, 2022) recognized in the United States. We realized a nominal tax benefit in connection with stock options exercised during both the three and six&#xA0;month periods ended July&#xA0;31, 2022 and a nominal tax benefit for both the same periods in fiscal 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Stock Options</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of July&#xA0;31, 2022, we had </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_9XJhAKFCC02Gr9iVtZ5R3w" decimals="0" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="0" id="Narr_0JSaDbGBRUOYSts6hIPXvw">1,627,978</ix:nonFraction></span><span style="font-family:'Verdana';"> stock options granted and outstanding under our shareholder-approved stock option plan and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_9XJhAKFCC02Gr9iVtZ5R3w" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" scale="0" id="Narr_1N4MU7uku0uXsSBAE3k2rA">2,700,683</ix:nonFraction></span><span style="font-family:'Verdana';"> remained available for grant.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of July&#xA0;31, 2022, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_tM0Q6ljYx0G_13Wkrs6Xdg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_XYXLvq1iskKuyKOCllvS_g">10.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs related to non-vested stock option awards is expected to be recognized over a weighted average period of </span><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember__ZKuFHdJIUuHMkN80GGSYQ" format="ixt-sec:duryear" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="Narr_IRzJm2bJ7kGrWVYd4kWf0w"><span style="font-family:'Verdana';">2.9</span></ix:nonNumeric><span style="font-family:'Verdana';">&#xA0;years. The total fair value of stock options vested during the three and six&#xA0;month periods ended July&#xA0;31, 2022 was nominal and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember__ZKuFHdJIUuHMkN80GGSYQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" scale="6" id="Narr_6Sqkpkf430q1mTAKukgWSg">0.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the three and six&#xA0;month periods ended July&#xA0;31, 2022, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_XJmVqfLn7UiFJvCqxwOAlA" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Narr_X9EFdpzO3U-sSSjpZORQvw">92,422</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_26mOEtGXe0GfTRnsQBkcJw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Narr_lhkEWONe_EyGqRLkrb3k_w">354,699</ix:nonFraction></span><span style="font-family:'Verdana';"> stock options, respectively, were granted compared to </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_H7_2is4f7UCcfvvfAI23GA" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Narr_PX1uKx290kGrOGOb8TtlMw">1,000</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Xr1rfxtcIEavXwIdjmzWTQ" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Narr_eiGhQ-bEv0CZtOxsR7k6cA">269,025</ix:nonFraction></span><span style="font-family:'Verdana';"> stock options for the same periods in fiscal 2022. The weighted average grant-date fair value of stock options granted during the six&#xA0;month periods ended July&#xA0;31, 2022 and July&#xA0;31, 2021 was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_26mOEtGXe0GfTRnsQBkcJw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Narr_SXru17vBxkWtpSFsYx5xzQ">18.91</ix:nonFraction></span><span style="font-family:'Verdana';"> per option and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Xr1rfxtcIEavXwIdjmzWTQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Narr_JqoqHzYWBEuBVEEZGRQ7YQ">16.85</ix:nonFraction></span><span style="font-family:'Verdana';"> per option, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The weighted-average assumptions were as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" id="Tb_Sa-wAq1Wj0-rykAg8pd45w" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:24.13%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected dividend yield (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#x2014;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected volatility (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="Tc_VVXWqT85zEeOxlWxaJH97w_5_2">29.2</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="Tc_lrQ4a2cE7U6CRRzUjmABTw_5_4">27.8</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Risk-free rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="Tc_QupSc6T4cEiAhEPkRnYNmg_6_2">2.4</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="3" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="Tc_pBOuWhcKnkWijOTTwO1xNw_6_4">0.7</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected option life (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="Tc_iCK24uI8rkWw06oDAdfiig_7_2"><b style="font-family:'Verdana';font-weight:bold;"> 5</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="Tc_RiVHsJQd0EqWBWVsCcev5A_7_4"><span style="font-family:'Verdana';"> 5</span></ix:nonNumeric></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">60</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_zewhrZNKnUezFRCIwMgJjA_1_7"></a><a id="Tc_leBDUl7mOUCvIfht7pv5oQ_2_2"></a><a id="Tc_Om6udHHrZk2VlH90zWXXXQ_2_4"></a><a id="Tc_OBWuVUZ-S0CkT5ahPtyEDw_2_7"></a><a id="Tc_SLFSYOJhiEagDr2I1iqu_Q_2_9"></a><a id="Tc_v9blIPjVeE-Mn6LzBQwIrQ_3_2"></a><a id="Tc_ZSLtIqg5x0S_a2WjvoNC5w_3_4"></a><a id="Tc_sPrIoGI4AE2fUcQqJDVppQ_3_7"></a><a id="Tc_wNSlLfwfFUOm2WJGfyseNg_3_9"></a><a id="Tc_R08FMZLC0UafAFocMMKMvg_4_2"></a><a id="Tc_YcqGqgBV-Ei-jsi3wZCY8A_4_4"></a><a id="Tc_6wL1unu7o0etwHBm75o0Yg_4_7"></a><a id="Tc_7jOW2Nd4906R3GaVo5rRxw_4_9"></a><a id="Tc_DzZKhfNkBU6p5qT3OGKRXA_5_2"></a><a id="Tc_QxBqe-8haUKllkDj2-QhrQ_5_4"></a><a id="Tc_y4RpFjZZ3k-90ibVUtIv5g_5_7"></a><a id="Tc_4U8Ym8lEjUSlfcY0Vw1X5A_5_9"></a><a id="Tc_XaSQFyZADUiHTi-sg_vmVg_6_0"></a><a id="Tc_zixotj0usUuDVgheJEeqKA_6_4"></a><a id="Tc_Q7JE1xb4RkOH7XHL3AKrBw_6_9"></a><a id="Tc_bq4dRzeTVEqB7h-Z8d_wJQ_7_0"></a><a id="Tc_CeTODqwrmUycOX2tJdIL8g_7_4"></a><a id="Tc_fpDqXK5tdkOXFj6_483zkA_8_0"></a><a id="Tc_IJgmpELZ9kSZ0ysFDGnQ1Q_8_4"></a><a id="Tc_jhyeUXATjU-hooWHKQebuQ_9_0"></a><a id="Tc_UUwVVaUUf0eiaGwM2ZDDog_9_4"></a><a id="Tc_ShQtLAk8Vk-XnWujg43fhg_10_0"></a><a id="Tc_URlWUc9u5E-M5sNSse8vsg_10_4"></a><a id="Tc_g-0FRGYShk6sUH1wEzv1Xg_10_9"></a><a id="Tc_LS0qmORHCk-EzqKWaLDP9g_12_0"></a><a id="Tc_q1d1RZL1h0eqYM4Sb3i3vg_12_4"></a><a id="Tc_5h9pl-nKS0iYENtZWu5CmQ_12_9"></a><a id="Tc_kFFpbaMgukaD6tPQC0qfWQ_14_0"></a><a id="Tc_qWkTYCqHlEaoRYGSdGsmow_14_4"></a><a id="Tc_h6E96UcM9EGuXF5SvPxW0g_14_9"></a><a id="Tc_P0DS5hAqdUy4HUu4NAV_2A_1_4"></a><a id="Tc_VtyJasTNuUiOFxPf-K-A2A_1_7"></a><a id="Tc_4HBRVpNZlkiRSHKceoslSw_2_4"></a><a id="Tc_yX2SPzw4AEGfcQTdeqNKSg_2_7"></a><a id="Tc_IVriGMuTYEGAEhH7Qkhb6g_2_9"></a><a id="Tc_lBx18r538ES2OwV334n3hA_3_2"></a><a id="Tc_3obaNVBNlUON1aINrXNe3A_3_4"></a><a id="Tc_bMgHmSoCN0umLxZkH9pZrA_3_7"></a><a id="Tc_bCnUfiXTKUGtFnotTAQpqQ_3_9"></a><a id="Tc_qLgecJUB6k-cPNDpKTjPNA_4_2"></a><a id="Tc_1wg24sXW1U-0xYid3eMndQ_4_4"></a><a id="Tc_aRoYXaINPEOPZorXVtnnOQ_4_7"></a><a id="Tc_yGZf4FBFf0mun0--X6ZCYA_4_9"></a><a id="Tc_lnecsaiMVU-AogrhUW0Q5Q_5_2"></a><a id="Tc_s-fBcJNqA0qm5nFVz5qOnA_5_4"></a><a id="Tc_5EltdiqWw0aZ558qjGFbNg_5_7"></a><a id="Tc_X3SKIOG7eUC57lhogqKIpg_5_9"></a><a id="Tc_KwM-L1O5-kGtcw2KO9WOXQ_6_0"></a><a id="Tc_TxAaWPLfxUaSaJjBQ_poxA_6_4"></a><a id="Tc_EsybtDWnXkWNHk5Uexo5BA_6_9"></a><a id="Tc_9tIQXn_jWkKu5123UFtBYw_7_0"></a><a id="Tc_IHFceLLBl0-182MTvL8bbg_7_4"></a><a id="Tc_imSqE06iYkqBKqah2S-shQ_8_0"></a><a id="Tc_axSIPmACmUam3DlTHALkug_8_4"></a><a id="Tc_jDPoR6y2ykyeKt5qEtFWCw_9_0"></a><a id="Tc_NqvjPL4RbE6heAr4qwOePw_9_4"></a><a id="Tc_VAxLQ0QrMk2Ichch8I7wEg_9_9"></a><a id="Tc_DdJI_ZcaD02QgMZ9xkq_cQ_11_0"></a><a id="Tc_JaSjGBZz8UW1Cr7Tbo0DCg_11_4"></a><a id="Tc_b-sSx6Uau0SjWUoDltPmtA_11_9"></a><a id="Tc_BalZ2y9-3EmNjqBtUlxLPw_13_0"></a><a id="Tc_LfER3dvm2kKtMwcRBSGBRA_13_4"></a><a id="Tc_9T0kewNa-0imxWmR0Ade1g_13_9"></a><ix:continuation id="Tb_rbXGGCinm0GzKw-IxouXNA_cont1" continuedAt="Tb_rbXGGCinm0GzKw-IxouXNA_cont2"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">A summary of option activity under all of our plans is presented as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="Tb_XhwuQNoawUWu35nC6AtGog" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#xA0;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#xA0;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="0" id="Tc_JVz0PnP7Zk-y24GyQnrZrg_6_2">1,319,279</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_nhRdYdcqGkulgP6r8EhwKQ_6_5">42.35</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_6FniHWIdoEaqbZuSVaSgbA" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" id="Tc_IuEreFjz-EuWR54erHL-Fg_6_7"><span style="font-family:'Verdana';"> 4.4</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" scale="6" id="Tc_bRyJMhWrnE-VvXJyY9BEYQ_6_10">41.5</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" scale="0" id="Tc_KSzqktz4oE--b_ZeoD39MQ_7_2">354,699</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_PgjIeROXXEisWRr9M4p5kQ_7_5">62.57</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="0" format="ixt:numdotdecimal" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="0" id="Tc_khbgu8w7ykqw4dhD3cCFig_8_2">32,337</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_8JvPFmUJ202kgC4SzW-k5Q_8_5">26.51</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" scale="0" id="Tc_YkHy2Ai1L0W1FFZmVo2oXQ_9_2">13,663</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" scale="0" id="Tc_WuhW3ttzT0eUMiu1vUC-1w_9_5">53.06</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="0" id="Tc_zXMXm04m3UWdfPzvAtc7Jg_10_2">1,627,978</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_uQ42tQ2JQESWj8gCKpGjig_10_5">46.34</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" id="Tc_GJh0okbJAUaj5zEnnA1Y9w_10_7"><b style="font-family:'Verdana';font-weight:bold;"> 4.6</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" scale="6" id="Tc_XPQ9M3UTj0e-YADZ09BOcA_10_10">37.4</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" scale="0" id="Tc_8Wo-YYjqOUSwlbuThQuYcw_12_2">1,627,978</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_EtSd1I1c00iuF0QjaOUPWA_12_5">46.34</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" id="Tc_Lt54u8CElkao9IdDm2zYYQ_12_7"><b style="font-family:'Verdana';font-weight:bold;"> 4.6</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" scale="6" id="Tc_z0WIkfzvFUmAvcRJbGCncQ_12_10">37.4</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" scale="0" id="Tc_Aymo7DHMrUyB6mkgna9J5A_14_2">827,223</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" scale="0" id="Tc_q9yvpXXPoUWdbcXyyTgkmw_14_5">36.69</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" id="Tc_ApsyuREw-k-fSMOlrpaasA_14_7"><b style="font-family:'Verdana';font-weight:bold;"> 3.5</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" scale="6" id="Tc_7ENg6HgRPkuJfcBWtpECAA_14_10">26.9</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The total intrinsic value of stock options exercised during the three and six&#xA0;month periods ended July&#xA0;31, 2022 was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="Narr_ASfEYpkxu0-Dr7ziqybZCg">0.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="Narr_1w2PX4hGv0-62JR01-tI8w">1.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million, compared to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="Narr_HP28wksIMkW__YuV900zrw">1.4</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="Narr_ThsfAaoLvUWugeX_bW-6gA">2.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million during the same periods of fiscal 2022, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Performance Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of PSU activity is as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" id="Tb_lUTc-4hn8024SjFyu2a7Pg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">PSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date&#xA0;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#xA0;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#xA0;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_CI-4MPED-ke4lzaujLl9Sw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_rGXN5ILFKEOdY9oeZQRZkQ_6_2">777,538</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_CI-4MPED-ke4lzaujLl9Sw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_GugU3QIa90ymqq8xUegORg_6_5">35.76</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_1_30_2022_To_1_30_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Cvlh80GwZkONLsvFvRGc9g" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_x6xP0MLMZE-WIeE1YGg9jw_6_7"><span style="font-family:'Verdana';"> 4.8</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_CI-4MPED-ke4lzaujLl9Sw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_qPyUGY4FnkCkVDh4hdX9Cg_6_10">57.4</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="0" id="Tc_AWniPmD7TkSp98uOtP-Tqw_7_2">97,991</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_RpM58645dUuquCzSVBYs6w_7_5">66.58</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Performance units issued</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" scale="0" id="Tc_ZjO3JwtqeE-JMR3gb2bS4Q_8_2">39,704</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A" decimals="2" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_MPKzbRKFukGZVg1bT2vfFQ_8_5">55.68</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_39KCqa5WJU-brEo8hL6K7Q_9_2">915,233</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_61MuBGaYak6GqTY9G6BV4A_9_5">39.36</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_Ejsa3MsCAEexikc1h7WUnQ_9_7"><b style="font-family:'Verdana';font-weight:bold;"> 5.0</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_unPABVFutUeiRT23-upPsw_9_10">63.4</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A" decimals="0" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" scale="0" id="Tc_dbwhjKAuUkOG3W8ujDwZpg_11_2">915,233</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A" decimals="2" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_WIoCaCWnqEaBhssWqrlNsA_11_5">39.36</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_KtccP6gQQ0uU_Iyoe9jfLg_11_7"><b style="font-family:'Verdana';font-weight:bold;"> 5.0</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" scale="6" id="Tc_LG7VWsuXA0SUN1L_fNnFlQ_11_10">63.4</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A" decimals="0" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" scale="0" id="Tc_32bRh1UMo0yhzkiH6F38DQ_13_2">654,467</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A" decimals="2" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" scale="0" id="Tc_18oWNeUpz0qBfgqwla38xw_13_5">27.43</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A" format="ixt-sec:duryear" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" id="Tc_emuoJE6fnUiNJ_usOA3OGg_13_7"><b style="font-family:'Verdana';font-weight:bold;"> 3.6</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A" decimals="-5" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" scale="6" id="Tc_g9ziU02CbUyG_eKFFyga4w_13_10">45.3</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The aggregate intrinsic value represents the total pre-tax intrinsic value (the aggregate closing share price of our common shares on July&#xA0;31, 2022) that would have been received by PSU holders if all PSUs had been vested on July&#xA0;31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of July&#xA0;31, 2022, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_OLrb1KTXS0eQwOO6DaKGTA">10.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of </span><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A" format="ixt-sec:duryear" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="Narr_E0f_bHUkqE2V6uRk88IAPA"><span style="font-family:'Verdana';">1.6</span></ix:nonNumeric><span style="font-family:'Verdana';">&#xA0;years. The total fair value of PSUs vested during the three and six&#xA0;month periods ended July&#xA0;31, 2022 was </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_XnYSDwS3ckiVl3gWyWt_5Q" decimals="-5" format="ixt-sec:numwordsen" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" scale="6" id="Narr_JsF6RbKSiEeyEkPKSylBvw">nil</ix:nonFraction></span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" scale="6" id="Narr_LkGscsw8Mk2YgMnn5WtElQ">5.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million, respectively.</span></p></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">61</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_9ebGj6je9UG4T3viKy0heg_1_4"></a><a id="Tc_usYHpgAPOk2mYC7cwX_LeQ_1_7"></a><a id="Tc_5wf1sGuGRUa9XmuaQrNK2Q_2_4"></a><a id="Tc_S7Z7IcLTF026C9RMquFWCw_2_7"></a><a id="Tc_GyQfu99zJUOgSuf0w6fG7Q_2_9"></a><a id="Tc_a1wI_pWnjE2DDtolCCTkvw_3_2"></a><a id="Tc_IVgI0d3lbUqoTo1WBU6t5A_3_4"></a><a id="Tc_gJzMC5why02oqlmP-zg12Q_3_7"></a><a id="Tc_GwT15LnrT0CxVrI-Tedd6A_3_9"></a><a id="Tc_YUBzfCHP80Smct4GyBx62Q_4_2"></a><a id="Tc_rwiX470g7EmATqSAv5zqQA_4_4"></a><a id="Tc_l0U20E54j0qtXvUeXoofaQ_4_7"></a><a id="Tc_iDGlnRixfE6YToY-e45dlg_4_9"></a><a id="Tc_hxbPcCSFQU62gHiDfsMKDw_5_2"></a><a id="Tc_XsUH2SrgWUm3exUZhDI32w_5_4"></a><a id="Tc_uRR5SJnzI0WcjJeqXKsqnA_5_7"></a><a id="Tc_TWFpGzrdBE-YJI_HE3zFXg_5_9"></a><a id="Tc_mmKgPgJeME6LnJqMF4oilA_6_0"></a><a id="Tc_lEsJPbtSW0uAPB6d1GRt_Q_6_4"></a><a id="Tc_pj1R2ZmnWEWDkzPWgQ-CPw_6_9"></a><a id="Tc_EoIC8HEYSEWf9f16VCCCyg_7_0"></a><a id="Tc_xWSi3dZq4E2viStRx6Dv6g_7_4"></a><a id="Tc_l9Cmgl1SOkCE-1F_1KQbRA_8_0"></a><a id="Tc_c0AYEsHQuUK1hXJloZDKRA_8_4"></a><a id="Tc_okRNjz_LrEKRUIE-k8lq3A_8_9"></a><a id="Tc_YDWZTaY2N02BBn95CZ9qUw_10_0"></a><a id="Tc_p8MKvBRM9km07aFX3xkW7A_10_4"></a><a id="Tc_qNDn-Gr3fESVgmN3rI4-Ww_10_9"></a><a id="Tc_WYaX1lKdGkmn2zAi5maymA_12_0"></a><a id="Tc_7WPWyMJ0U0utnmnF7b_EcQ_12_4"></a><a id="Tc_UMqsSOEAgkW9cfybkxQaaA_12_9"></a><a id="Tc_9hQRBdF3uE-r2EO1WbZ9Jw_1_4"></a><a id="Tc_0IntdcimvkavImWSDMtv-Q_2_4"></a><a id="Tc_HxhQfELwHkqkYnmciK3k0A_3_2"></a><a id="Tc_myaj5JinhEa205x2px95WA_3_4"></a><a id="Tc_54PBxCRi2UeNGcm4zDsZxg_4_2"></a><a id="Tc_sixq3FIlpka5sFBl5qmx-A_4_4"></a><a id="Tc_WNx5WjJR20GdTSBFRd45lQ_5_2"></a><a id="Tc_4aNXcQEKWEepr9jZapRpIw_5_4"></a><a id="Tc_I8-SxMQu-EuNEebeK9UMrg_6_0"></a><a id="Tc_60RdOzL-l0S8MIBI_ZFMDA_7_0"></a><a id="Tc_BsNd9N_-DkWgMcjHEtck7Q_8_0"></a><a id="Tc_lMFvWe0aN06iYtUdgRXPwg_9_0"></a><a id="Tc_2IGZ5LmCHkq1s-eOjZ0DzQ_10_0"></a><a id="Tc_4F4pAOVXVU6830kBDdVKgg_12_0"></a><ix:continuation id="Tb_rbXGGCinm0GzKw-IxouXNA_cont2" continuedAt="Tb_rbXGGCinm0GzKw-IxouXNA_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Restricted Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of RSU activity is as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" id="Tb_QnYOcWCzyky-8zIDEyIzqQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">RSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date&#xA0;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#xA0;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#xA0;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_H6_bruhxJ0-p58CUiuS77w" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_2wW3ElV8fESqbdAMdCkKuQ_6_2">410,980</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_H6_bruhxJ0-p58CUiuS77w" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_D4Hf2OFqeEOx8xtcFlL9ZA_6_5">29.17</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_UengJu3z4UW0I8qVKvgHTA" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_bcDCSEh_IEyfN-ExJrTr1w_6_7"><span style="font-family:'Verdana';"> 5.0</span></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_H6_bruhxJ0-p58CUiuS77w" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_gFiddvM9EkCMf8tFBZ4ruw_6_10">30.3</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="0" id="Tc_0dSxxsdhy0C_zt0q4qNNMg_7_2">63,651</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="Tc_0ik7vR-4hECdZKe2DyBVKA_7_5">63.05</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" scale="0" id="Tc_JowTwSQsC0K8-xqzlk38EQ_8_2">474,631</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="Tc_WvySPxsw6EiEutd_J4w5Zw_8_5">33.24</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg" format="ixt-sec:duryear" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Tc_ccZHSPozWEGlwlzLjhDicA_8_7"><b style="font-family:'Verdana';font-weight:bold;"> 5.1</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" scale="6" id="Tc_hkstuh0dtkOG0A_nzYAxRg_8_10">32.9</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw" decimals="0" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" scale="0" id="Tc_pQK2Y2HiM0isx6HDmBAcHw_10_2">474,631</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="Tc_MhRVHiYLs0G-zv0IUyOJvQ_10_5">33.24</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg" format="ixt-sec:duryear" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" id="Tc_KZJSDa2WA06U1op_EBMzeQ_10_7"><b style="font-family:'Verdana';font-weight:bold;"> 5.1</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" scale="6" id="Tc_oLvOhkPoikWMPgyhuZCwIQ_10_10">32.9</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw" decimals="0" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" scale="0" id="Tc_m7hIGQS0J0m2A93E7uS7sw_12_2">355,675</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw" decimals="2" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" scale="0" id="Tc_3SnnwO44XUuB8Yqy8Y7zZQ_12_5">24.17</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg" format="ixt-sec:duryear" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" id="Tc_va8UJU7cFkuIwnT2Q8Jm3g_12_7"><b style="font-family:'Verdana';font-weight:bold;"> 3.9</b></ix:nonNumeric></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw" decimals="-5" format="ixt:numdotdecimal" name="dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" scale="6" id="Tc_5Dx3dF7vc0Gdeem5qyWe6Q_12_10">24.6</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The aggregate intrinsic value represents the total pre-tax intrinsic value (the aggregate closing share price of our common shares on July&#xA0;31, 2022) that would have been received by RSU holders if all RSUs had been vested on July&#xA0;31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of July&#xA0;31, 2022, </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_qdv6YBRRwEahvKaMAXE-2A">5.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of </span><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg" format="ixt-sec:duryear" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="Narr_rN_L38_ZdUG8LNHYOIrCGA"><span style="font-family:'Verdana';">1.9</span></ix:nonNumeric><span style="font-family:'Verdana';">&#xA0;years. The total fair value of RSUs vested during both the three and six&#xA0;month periods ended July&#xA0;31, 2022 was </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg" decimals="-3" format="ixt-sec:numwordsen" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" scale="0" id="Narr_mlbStYF-yEGkrTy5-RBzeA"><ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Q4k64j2ck0SOPLIylYgG8w" decimals="-3" format="ixt-sec:numwordsen" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" scale="0" id="Narr_KVVi2zB79kCW2UqwARnZ1w">nil</ix:nonFraction></ix:nonFraction></span><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Deferred Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As at July&#xA0;31, 2022, the total number of DSUs held by participating directors was </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_z2sIJoskBkObtdU2ysRlgA" decimals="0" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsOutstandingNumber" scale="0" id="Narr_5MRI4ZxMDk2isYJN6VftGg">281,768</ix:nonFraction></span><span style="font-family:'Verdana';"> (</span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_kA9fbVE_20-Sy3Zv7XzheA" decimals="0" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsOutstandingNumber" scale="0" id="Narr_3i4j2VTkDkCKiLrKVZHk2Q">252,011</ix:nonFraction></span><span style="font-family:'Verdana';"> at January&#xA0;31, 2022), representing an aggregate accrued liability of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_z2sIJoskBkObtdU2ysRlgA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" scale="6" id="Narr__daUZUKiwkS8C5sFZXby-w">18.5</ix:nonFraction></span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_kA9fbVE_20-Sy3Zv7XzheA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" scale="6" id="Narr_Sb-CRMJloEeQdAlglZ6e7w">18.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million at January&#xA0;31, 2022). During the six&#xA0;month period ended July&#xA0;31, 2022, </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_ESIN5UiZbkK2LwQKiga11g" decimals="0" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsGrantsInPeriod" scale="0" id="Narr_zm2qGPhHIEahwG9sfmpqLg">29,757</ix:nonFraction></span><span style="font-family:'Verdana';"> DSUs were granted. The fair value of the DSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to DSUs recognized during the three and six&#xA0;month periods ended July&#xA0;31, 2022 was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_xEjZ57AfGkmUCg9foKrNYg" decimals="-5" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsCompensationExpense" scale="6" id="Narr_LJ1so0cTKE2CFvF0Gf_qHQ">2.7</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_ESIN5UiZbkK2LwQKiga11g" decimals="-5" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsCompensationExpense" scale="6" id="Narr_6zhzsDzRHUa5mR4wPsY30g">0.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million, respectively, compared to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_pOpE-IdgR0qB035YIFHkFw" decimals="-5" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsCompensationExpense" scale="6" id="Narr_DcRE6aGv6kyl8YVetwuijA">3.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_hWz9s3-KH0CY2efj4UpdAQ" decimals="-5" format="ixt:numdotdecimal" name="dsgx:DeferredShareUnitsCompensationExpense" scale="6" id="Narr_Xs36b5UgJUSryNnAw9rFrg">3.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million for the same periods in fiscal 2022, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Cash-Settled Restricted Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of activity under our CRSU plan is as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" id="Tb_sXcr64any024OqHjeFimwA" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#xA0;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">CRSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#xA0;(years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsOutstandingNumber" scale="0" id="Tc__4iGIo5U7E66hp47VN08Og_6_2">24,428</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2021_To_1_31_2022_6FniHWIdoEaqbZuSVaSgbA" format="ixt-sec:duryear" name="dsgx:CRSUAwardsWeightedAverageContractualLife" id="Tc_8k2tCmDa10iatHsjOUVGQA_6_4"><span style="font-family:'Verdana';"> 1.4</span></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsGrantsInPeriod" scale="0" id="Tc_pbt91PH3Ck2tY4RunC5w0w_7_2">7,948</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Vested and settled in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsVestedAndSettledInCash" scale="0" id="Tc_f-VHvDjZEkuPkeGpb2fRbQ_8_2">9,463</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsForfeitedInPeriod" scale="0" id="Tc_FPgMJBMU70u2O51U-8cFBQ_9_2">74</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardsOutstandingNumber" scale="0" id="Tc_Ejbej0t4y0iCkW3QJU4uMg_10_2">22,839</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" format="ixt-sec:duryear" name="dsgx:CRSUAwardsWeightedAverageContractualLife" id="Tc_Ar0q1prpC0uy50yD6zZutA_10_4"><b style="font-family:'Verdana';font-weight:bold;"> 1.6</b></ix:nonNumeric></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-vested at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="0" format="ixt:numdotdecimal" name="dsgx:CRSUAwardNonvestedNumber" scale="0" id="Tc_IpIMBnHep0KWhbz1qt-D7A_12_2">22,839</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" format="ixt-sec:duryear" name="dsgx:CRSUAwardNonvestedWeightedAverageContractualLife" id="Tc_RSTaunXBEUy-Mn8eWKj1qg_12_4"><b style="font-family:'Verdana';font-weight:bold;"> 1.6</b></ix:nonNumeric></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></ix:continuation></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">62</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_rbXGGCinm0GzKw-IxouXNA_cont3"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We recognize the compensation cost of the CRSUs ratably over the service/vesting period relating to the grant and have recorded an aggregate accrued liability of </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_mtA9I9pvSE6FG3lE9Ytp1g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" scale="6" id="Narr_GK-K_mv8u0aQBqGtqRONkw">0.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million at July&#xA0;31, 2022 (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_BJ-b9jesj0WuJ8oHn98s5g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" scale="6" id="Narr_ZSrDtPenI0mCU0ZPXhfzNQ">0.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million at January&#xA0;31, 2022). As at July&#xA0;31, 2022, the unrecognized aggregate liability for the unvested CRSUs was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_mtA9I9pvSE6FG3lE9Ytp1g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_yBExAbFsw0KKU80Nz4AryA">1.1</ix:nonFraction></span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_BJ-b9jesj0WuJ8oHn98s5g" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="Narr_yrSTU3uRtEybWkaGOstEFg">1.0</ix:nonFraction></span><span style="font-family:'Verdana';"> million at January&#xA0;31, 2022). The fair value of the CRSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to CRSUs recognized during the three and six&#xA0;month periods ended July&#xA0;31, 2022 was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_TK7uSnCdt0a5El16GyXQCg" decimals="-5" format="ixt:numdotdecimal" name="dsgx:CashSettledRestrictedShareUnitsCompensationExpense" scale="6" id="Narr_A-08LKf6NUOtSFh9wi73pw">0.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_7D-XtcsX3kiVBp_0hZ6H6w" decimals="-5" format="ixt:numdotdecimal" name="dsgx:CashSettledRestrictedShareUnitsCompensationExpense" scale="6" id="Narr_XZJ8dFDYukOBWG7QJ3dFbg">0.4</ix:nonFraction></span><span style="font-family:'Verdana';"> million, respectively, compared to </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_gYOO354_Qkmac19gV8PY1Q" decimals="-5" format="ixt:numdotdecimal" name="dsgx:CashSettledRestrictedShareUnitsCompensationExpense" scale="6" id="Narr_33LO-Mfdq0yq1VFNtn3j4g">0.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_dEb3HPSleUS1f39A7vfEuw" decimals="-5" format="ixt:numdotdecimal" name="dsgx:CashSettledRestrictedShareUnitsCompensationExpense" scale="6" id="Narr_ZMckzw21lESitqQonBdF6A">0.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million for the same periods in fiscal 2022, respectively.</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:IncomeTaxDisclosureTextBlock" id="Tb_DOOONl8AGUO7kjQNpslapg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;18&#xA0;- Income Taxes</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The effective tax rates (which is the provision for income taxes expressed as a&#xA0;percentage of income before income taxes) were </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="Narr_XBE3ZiAfC0aMuH6IqKpx_A">27.8</ix:nonFraction>%</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="Narr_-Q6Hk__Gw0GS6tbtZLj0vw">26.0</ix:nonFraction>%</span><span style="font-family:'Verdana';"> for the three and six&#xA0;month periods ended July&#xA0;31, 2022, respectively, and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="Narr_0Cj9MYf2oU68aSAEMxtG6w">10.5</ix:nonFraction>%</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="3" format="ixt:numdotdecimal" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="Narr_FUnD0pBMQk23oliTdrJhng">15.3</ix:nonFraction>%</span><span style="font-family:'Verdana';"> for the same periods in fiscal 2022, respectively. The increase in the three and six&#xA0;month periods ended July&#xA0;31, 2022 compared to the same periods in fiscal 2022 was primarily due to a change in tax rate and release in valuation allowances on tax losses carried forward during the comparative period. The remainder of the differences are due to normal course movements and non-material items.</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_5GRVfaBF5ke9ZAouhaxnSw_1_2"></a><a id="Tc_rG00SJ-PmU-2QBK2gsHt1g_2_2"></a><a id="Tc_lTuxrZnJ50yeHD4ClAPoIA_3_0"></a><a id="Tc_6pO4o8TlMkG_2oNJfgG44A_4_0"></a><a id="Tc_NGEHm5qtqUaCIqEsnd5W7Q_5_0"></a><a id="Tc_-krlrfP6zEWPhiURPXS2mg_6_0"></a><a id="Tc_kGl3NTWvOkyeILsFypIICQ_7_0"></a><a id="Tc_tb9RDSkO6kGNANncptyMQA_8_0"></a><a id="Tc_INrH022uskSjsqoqiQM-Rw_9_0"></a><a id="Tc_5JhLt_Aalkup21o6yKqJLA_10_0"></a><a id="Tc_SCC3tWQPCU65KKn7xN5EcQ_1_2"></a><a id="Tc_DmdA-syJp022a07oeYKboQ_2_2"></a><a id="Tc_Otl4eXal9UCy1kjkH3JqWA_3_0"></a><a id="Tc_UArkZiGf_kma8NUqEMlz3Q_4_0"></a><a id="Tc_B2-48-pbQU-WmA-SVhzXOw_5_0"></a><a id="Tc_jc30l3Ne90C79hqYtJ0g_A_6_0"></a><a id="Tc_Z6N2DL2XdEmWjORGJ7FIjg_7_0"></a><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:RevenueFromContractWithCustomerTextBlock" id="Tb_aW_FMwbCekqA_wubaxWU7A" continuedAt="Tb_aW_FMwbCekqA_wubaxWU7A_cont1" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;19&#xA0;&#x2013; Contract Balances, Performance Obligations and Contract Costs</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Deferred Revenue</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the deferred revenue balance as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" id="Group_-nLeuYHrtEG1l3X6ndC-lA" continuedAt="Group_-nLeuYHrtEG1l3X6ndC-lA_2" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Deferred</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiability" scale="3" id="Tc_FOOvr5jnT0OOrgfhKImHvw_3_2">58,700</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Recognition of previously deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" sign="-" scale="3" id="Tc_mW2eLkKO4kmYSIi2dQATIw_4_2">24,236</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferral of revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" scale="3" id="Tc_Y41oOWf9SUKCCZXsFHcfog_5_2">36,034</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases from business combinations, net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" scale="3" id="Tc_Vhs7AivRdk2s1CtxNn81NQ_6_2">2,035</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" sign="-" scale="3" id="Tc_iyW7KDCrgUq5rHelGVF3HA_7_2">4,240</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiability" scale="3" id="Tc_EDSCP09Oo02qXdl-QU48Sg_8_2">68,293</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:DeferredRevenueCurrent" scale="3" id="Tc_QuWGHKia20O8QVwSeGVIsg_9_2">66,547</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" scale="3" id="Tc_fPWx_Hy8g0i-tJp63KbYdQ_10_2">1,746</ix:nonFraction></b></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Performance Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of July&#xA0;31, 2022, approximately </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:RevenueRemainingPerformanceObligation" scale="6" id="Narr_I6mDGgx3GUmD14oUZJg_Ug">371.9</ix:nonFraction></span><span style="font-family:'Verdana';"> million of revenue is expected to be recognized in the future related to performance obligations that are unsatisfied (or partially unsatisfied) at the end of the reporting period. We expect to recognize revenue on approximately </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="2" format="ixt:numdotdecimal" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" scale="-2" id="Narr_2OQcmtvbXkCS4uAsP8UHbw">80</ix:nonFraction>%</span><span style="font-family:'Verdana';"> of these remaining performance obligations over the next </span><ix:nonNumeric contextRef="As_Of_7_31_2022_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_dsgx_cnst_date_20240131_k2HD3LKap0ehF6JYckIKpQ" format="ixt-sec:durwordsen" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="Narr_Lkjdtck08ESeXDUnpirXJQ"><span style="font-family:'Verdana';">24&#xA0;months</span></ix:nonNumeric><span style="font-family:'Verdana';"> with the balance recognized thereafter.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Contract Assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the contract assets balance as follows:</span></p><ix:continuation id="Group_-nLeuYHrtEG1l3X6ndC-lA_2"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contract</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Assets</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNet" scale="3" id="Tc_NGYpNnFPU06JJQXrSfnMVg_3_2">1,443</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Transfers to trade receivables from contract assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetReclassifiedToReceivable" scale="3" id="Tc_0QZbIa6QiUmvs0aAelplkg_4_2">464</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" scale="3" id="Tc_nJ4fts0LKEW4EHivKTTtTA_5_2">1,983</ix:nonFraction></b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" sign="-" scale="3" id="Tc_bcrZbDYajUGIURFRqXT8XQ_6_2">3</ix:nonFraction>)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:ContractWithCustomerAssetNet" scale="3" id="Tc_PIsWtRho0kamKGUFw_pvFQ_7_2">2,959</ix:nonFraction></b></p></td></tr></table></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></ix:nonNumeric></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">63</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><ix:continuation id="Tb_aW_FMwbCekqA_wubaxWU7A_cont1"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Contract Costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Capitalized contract costs net of accumulated amortization is </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostNet" scale="6" id="Narr_GotneHPPWE21Hbcs5hUgkQ">17.3</ix:nonFraction></span><span style="font-family:'Verdana';"> million at July&#xA0;31, 2022 (</span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostNet" scale="6" id="Narr_lDI61rsf1k64-CoqrhyyvQ">16.6</ix:nonFraction></span><span style="font-family:'Verdana';"> million at January&#xA0;31, 2022). Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates. For the three and six&#xA0;month periods ended July&#xA0;31, 2022, the amount of amortization included in sales and marketing expenses was </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostAmortization" scale="6" id="Narr_llBpLUGC3k-i9sHB_A0vNw">1.4</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostAmortization" scale="6" id="Narr_A0Gdis9hLUid1vMBoCdBfQ">2.8</ix:nonFraction></span><span style="font-family:'Verdana';"> million, respectively, and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostAmortization" scale="6" id="Narr_wqyY6CH4kUW1V2KC0LYEPA">1.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-5" format="ixt:numdotdecimal" name="us-gaap:CapitalizedContractCostAmortization" scale="6" id="Narr_ACZNJ34QFEybI_V-QcnUeA">2.2</ix:nonFraction></span><span style="font-family:'Verdana';"> million for the same periods in fiscal 2022, respectively.</span></p></ix:continuation><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_KVTNcyxLOkeET_Irj0TyYQ_1_2"></a><a id="Tc_tQ6Vw_yJA0a8SKiKFQ4t9w_1_6"></a><a id="Tc_8vstCjbBDkqP0r0pEyqoWQ_2_2"></a><a id="Tc_aI-ZriERgk6KH9YV_ir4sw_2_4"></a><a id="Tc_z0UFzGBoxkWcbKL4TmAkPA_2_6"></a><a id="Tc_V-Am-TtkZkuI5EQivC-IFA_2_8"></a><a id="Tc_grPsCY12e0ufCRzEENkn8g_3_2"></a><a id="Tc_fXFNF-Yk3EaS5Cii-_5o6g_3_4"></a><a id="Tc_BVgc3EK3ikiaWWeJpoDTtQ_3_6"></a><a id="Tc_PC_O3yIAzkmoPLA4Slj5UA_3_8"></a><a id="Tc_OuYB56Y1z0WEkVoVYHHLmw_4_0"></a><a id="Tc_i2iI56Q9hE-R_9QI4VL-ZA_5_0"></a><a id="Tc__7e5sNUM2kit0dVGfwwrvg_5_4"></a><a id="Tc_xkH0Gm-SS0SNTeX-ydcZug_5_8"></a><a id="Tc_xKi5VmukoUOoEbUToG2Ndg_6_0"></a><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock" id="Tb_3UlEyPcalUKTuJnZYC6WRg" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;20&#xA0;- Other Charges</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Other charges are comprised of acquisition-related costs, contingent consideration adjustments and restructuring initiatives which have been undertaken from time to time under various restructuring plans. Acquisition-related costs primarily include advisory services, administrative costs and retention bonuses to employees joining by way of an acquisition, and collectively relate to completed and prospective acquisitions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following tables shows the components of other charges as follows:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" id="Tb_-cwlNIuPHU2ORipgfUv4aw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#xA0;Months&#xA0;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Acquisition-related costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="3" id="Tc_FxNml-j4JEehBsfn0PsZgA_4_2">923</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="3" id="Tc_2Prkk0hnxUWnuApqaEDFvQ_4_4">391</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="3" id="Tc_qq5OniyxCkKu6yIErDea1A_4_6">1,648</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="3" id="Tc_zYZfO7ETmEO6HMfsasXlLQ_4_8">908</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_2PC1FPD3tkmdTLML_0nPOQ_5_2">355</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="Tc_U4aLCE2yeUi5eI_LyEA1wA_5_6">1,059</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#x2014;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Restructuring plans</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="Tc_m7niIFL6r0yDoZ8vhhTdNQ_6_2">11</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="Tc_u02i6B2EcE-DdoWH-d2p7Q_6_4">23</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="Tc_Vld_OwelsUS0X1Olz-rkeg_6_6">64</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RestructuringCharges" scale="3" id="Tc_V3Ot9-uAmEKbPjwRD95FTA_6_8">26</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_l6XHAo4TJ0eo-pdbOFy75g_7_2">1,289</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_NvJeq10Ex0yGmdBdfVstaA_7_4">414</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_Wa3iVACv-EanapSkvYzRTg_7_6">2,771</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:OtherCostAndExpenseOperating" scale="3" id="Tc_BZMBYIZ9S0mdRZkTMTX9Lw_7_8">934</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#x200B;</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="Tc_zHFFXWtcDE2nIYyIbQvgCQ_1_2"></a><a id="Tc_bZk7CwucLkiY4bkOdiOK7Q_1_6"></a><a id="Tc_z20nQMl9mEG8zRsryCgCJg_2_2"></a><a id="Tc_ssWJac2GUkWMzHF10TZaEA_2_4"></a><a id="Tc_sXbuHd2XZ0utVzKSSZSnCQ_2_6"></a><a id="Tc_YjFbnGo2uEKM4gT93vEKMg_2_8"></a><a id="Tc_yTVCNtTv6USeBshvbPtSKQ_3_2"></a><a id="Tc_ek_rThQWJUG3wZbDF4yM0Q_3_4"></a><a id="Tc_xH27_Yo1bUqG7-JMYxl99w_3_6"></a><a id="Tc_jAUqMdI8zECcWsgt9q82yg_3_8"></a><a id="Tc_TBv3u3G7eUuJYK7TrLL8ng_4_0"></a><a id="Tc_yX-3dL9CokOZQE1-cujAiw_5_0"></a><a id="Tc_wPh2l7shdkymN_-6p4ySIg_6_0"></a><a id="Tc_xvCS1DcP9kyN0kqsfvpD7Q_7_0"></a><a id="Tc_NUhlHUIFGEOSqF6guXJK8w_8_0"></a><a id="Tc_4qf9tBuo3UqwBe9ElRI3AQ_9_0"></a><a id="Tc_STSg8WXl10u91vQIVcrjng_10_0"></a><a id="Tc_t6nAr9_pkEqybuzisjJSbQ_11_0"></a><a id="Tc_v3srxSkpsE-JmgJPG6SeqA_12_0"></a><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:CashFlowSupplementalDisclosuresTextBlock" id="Tb_TB_mrQ1_F0S3bvSZGI5KgQ" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;21&#xA0;&#x2013; Supplemental Cash Flow Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following tables presents the cash flow changes in operating asset and liabilities:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" id="Tb_T73p-1ICBE6US29Zs3ZwHw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.95%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#xA0;Months&#xA0;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.96%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" scale="3" id="Tc_Zk3wp6OHgEeVEBNWWNSYPA_4_2">1,624</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" sign="-" scale="3" id="Tc_zTwLXEts6Uq665vKiD4CHg_4_4">316</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" scale="3" id="Tc_mmHrdMe7CEKF16LlTwgpnw_4_6">4,544</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsReceivable" sign="-" scale="3" id="Tc_ZWeZvXVIUEyllN7VpgpZFA_4_8">1,419</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherReceivables" sign="-" scale="3" id="Tc_6UzLHmXWzkSI5RmnXbQhgw_5_2">2,532</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherReceivables" sign="-" scale="3" id="Tc_durDWLTezUWfUVKkm0gxBQ_5_4">804</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherReceivables" sign="-" scale="3" id="Tc_crGjYSac7k-GsLxSrO-pLA_5_6">2,349</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOtherReceivables" sign="-" scale="3" id="Tc_3H9FGy9fzUWvyD1eBivYUw_5_8">2,512</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Prepaid expenses and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="Tc_FlLLK5XBtk-chUPgrTl1sg_6_2">286</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="Tc_IgrjcVmtiEGBccs2YjE9ZA_6_4">3,016</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" sign="-" scale="3" id="Tc_xh6VyZXV5kaAf7vh2Gd_5g_6_6">493</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="Tc_OPESB_KoRUWUfT91yRgSvg_6_8">3,543</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Inventory</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="Tc_qNTo1BcuaUeSMGL4W7l-Rw_7_2">18</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="Tc_evnA5h6nYUiSmqn63mYqAA_7_4">166</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" sign="-" scale="3" id="Tc_lWOK6DrZxE2eJ9H0YGUUqA_7_6">36</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="Tc_4S6B95rj-EKPH0QXMc8pIg_7_8">338</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accounts payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayable" sign="-" scale="3" id="Tc_g21h0K11AUioBUOajHKvGg_8_2">293</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayable" sign="-" scale="3" id="Tc_ZTYurYBWzU-I0gMGlyuGPQ_8_4">94</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayable" sign="-" scale="3" id="Tc_gRhyqbXgnUyffxNm4f9keQ_8_6">1,135</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccountsPayable" sign="-" scale="3" id="Tc_4nvZr8QgykiFSRbzfR9B3A_8_8">214</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" sign="-" scale="3" id="Tc_WToQrEjQukCHOftyCJwEqA_9_2">1,783</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" scale="3" id="Tc_nkdHS8pMh0iMySyt_pdiNw_9_4">5,379</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" sign="-" scale="3" id="Tc_cyOfGIj_p0WAmvCWv4wwmg_9_6">3,862</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" scale="3" id="Tc_QJybRSBQPUmPjSDCXt4hHA_9_8">4,467</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income taxes payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInIncomeTaxes" sign="-" scale="3" id="Tc_Wru8ikJVn0-TOAELjDZb7A_10_2">296</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInIncomeTaxes" scale="3" id="Tc_F3w6kf2RdkSnUCMccPZrEg_10_4">1,295</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInIncomeTaxes" scale="3" id="Tc_HJmZaiUBnESZLnPRRBziig_10_6">127</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInIncomeTaxes" sign="-" scale="3" id="Tc_1ve1-TwHXEi2Ydd2wrVxqQ_10_8">308</ix:nonFraction>)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating leases</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="dsgx:IncreaseDecreaseInOperatingLeaseLiabilities" sign="-" scale="3" id="Tc_FzSalbXyNkanu283maL5eg_11_2">44</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:IncreaseDecreaseInOperatingLeaseLiabilities" sign="-" scale="3" id="Tc_BxFYGNVeaUqeSMv67O6MXA_11_4">240</ix:nonFraction>)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (<ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="dsgx:IncreaseDecreaseInOperatingLeaseLiabilities" sign="-" scale="3" id="Tc_T3ORIG47iUaJ4-WfEQMY-A_11_6">153</ix:nonFraction>)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="dsgx:IncreaseDecreaseInOperatingLeaseLiabilities" scale="3" id="Tc_2q2yW-ElS0mxIHA8KATqCw_11_8">43</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredRevenue" scale="3" id="Tc_P1eUI_1530yuxUwCy_x58A_12_2">2,794</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredRevenue" scale="3" id="Tc_IyjryJKImU6FcE50nosBdQ_12_4">1,426</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredRevenue" scale="3" id="Tc_Q0Ql1UFPh0GINdaq0SSm5g_12_6">7,411</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInDeferredRevenue" scale="3" id="Tc_YYcVLlqTSUie2uVGFceWEg_12_8">4,044</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_HS9nlI0r0kapUmTRO8E6FQ_13_2">982</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_XpK-aqaEx0q7JyfG_iS4DA_13_4">5,704</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_HB6v__XQF0GpZM852XWzIA_13_6">722</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:IncreaseDecreaseInOperatingCapital" sign="-" scale="3" id="Tc_XBXN_z933UGO1zWnrj3Tsw_13_8">8,082</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">64</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><a id="Tc_It3OeyXfDECJXWh550pnBg_1_2"></a><a id="Tc_LK_iuy8T7USsTovwmJjaHQ_1_6"></a><a id="Tc_Ebh_sl9EBUuV0hGYD9rfgQ_2_2"></a><a id="Tc_rHisl_AyrU6XJguZ0mI7mA_2_4"></a><a id="Tc_1_EfbnebXEivQ8gNKmtvUA_2_6"></a><a id="Tc_cqMr6fP_IEmJZp6itvwr3w_2_8"></a><a id="Tc_brOdhgTHMUKsKgLZIqmjfA_3_2"></a><a id="Tc_D9ccFgAERk-aa8prZCBwXA_3_4"></a><a id="Tc_P0ZQ-qaaYUOqIIBFcTvx6Q_3_6"></a><a id="Tc_wvvS1bI7LEuxfa1TEtcjoA_3_8"></a><a id="Tc_RX0dZvcI30eWsQ9o38iv6Q_4_0"></a><a id="Tc_78N4-XRrVEudB7-hKyQl3Q_5_0"></a><a id="Tc_lg1UvSN7DUWFbbQ2DzDkeA_6_0"></a><a id="Tc_ARCJfyYLmECiQPPFR1mAVA_7_0"></a><a id="Tc_NJajhh1fQUSzu3BOrAVOCw_8_0"></a><a id="Tc_4Kxjd-FioUiuRhQc7DWUFw_1_2"></a><a id="Tc_SaRKKMjzMEyY_f6yic4YRQ_1_6"></a><a id="Tc_SPorFwTxBEKadu6TaOujvw_2_2"></a><a id="Tc_ff7jwuGg7EudQkxZw_Smrw_2_4"></a><a id="Tc_buYR2oFtP0uZflBbntazKA_2_6"></a><a id="Tc_dmpGXaN0TkyvwBjpJrENvQ_2_8"></a><a id="Tc_Zvtcswmqb0m7X_kQwv7UIQ_3_2"></a><a id="Tc_X8Ojk06aV0KhugENYNI9Iw_3_4"></a><a id="Tc_iV2ZbuTGeku1UgYlAaPRVw_3_6"></a><a id="Tc_rniAkzCt7kaXRHmtI46xNQ_3_8"></a><a id="Tc_1h87jofHPEecwAdV-EXGxA_4_0"></a><a id="Tc_H3UixIAfgECbOOCP71X8mA_5_0"></a><a id="Tc_1mVCxMF84Euf-2v2P7m2fA_6_0"></a><a id="Tc_XSrOjtMTWkyo5LBfLFrbpQ_7_0"></a><a id="Tc_tcbmWouLYk2o_YQ611mEHQ_1_2"></a><a id="Tc_v0SsqPe5FUaYibZYJ6PqCA_1_4"></a><a id="Tc_AHz1U8FneEuraePxkZB8iQ_2_2"></a><a id="Tc_jQGqjUWLfUi6Ic3uNmI2Ow_2_4"></a><a id="Tc_IaUyXjNpUUq7Fm3EGErLuA_3_0"></a><a id="Tc_vkUtyrZnpkKHJexV62tHOQ_4_0"></a><a id="Tc_7QacoVYlU0uT6nau8g3smA_5_0"></a><a id="Tc_AX6iDgkZjEeNy68Crdj_vQ_6_0"></a><a id="Tc_WTXDFYzu9UiaSUeC1Uo94g_7_0"></a><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:SegmentReportingDisclosureTextBlock" id="Tb_s26KAivgC0aPuQ2MebXiXw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#xA0;22&#xA0;- Segmented Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We review our operating results, assess our performance, make decisions about resources, and generate discrete financial information at the single enterprise level. Accordingly, we have determined that we operate in </span><span style="font-family:'Verdana';"><ix:nonFraction unitRef="Unit_Standard_segment_Utkw4iHSj0-_Y-UHchFxgQ" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="INF" format="ixt-sec:numwordsen" name="us-gaap:NumberOfReportableSegments" scale="0" id="Narr_AbdnJkQAjUGEuun3fC51ng">one</ix:nonFraction></span><span style="font-family:'Verdana';"> reportable business segment providing logistics technology solutions. The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" id="Tb_PSjn7L6KX06umyTtOPVXUw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#xA0;Months&#xA0;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_US_LM8UEWr-akK4uz9XAMOzEw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_1zPMIODMwkqAIXU_-779OQ_5_2">78,569</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_US_rdpHPX8-RkG7V9SXI0qxcA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_xNG-4-tiqkSbBQcMo4mXLw_5_4">59,086</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_US_wn0HajC2nkul8AtuYTpmEA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_Z-UEsjOxpECI_UwibCZ_1w_5_6">147,633</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_US_XqbktfH3ZU6TXY2HllApHg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_8MO76Lsts06ITPZR9F5coA_5_8">114,343</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_btaY4H9daEma1W8qLvthrQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_RsOYpAVdW0OfX5rQUs0RuA_6_2">30,746</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_nrWbupFMDkiD5GLPdJg2vQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_oeKYFeTa_Uuy19-Ovg0zig_6_4">31,861</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_xQV0g9YTjEWhiV6TK6Xs0Q" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_yHamBE2Ar0iAzLxth_I0JA_6_6">65,377</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_rmXOAYu2RU-9ipiaM52qPQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_sMFtlY7NBUK6hZX56bwuog_6_8">62,948</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_CA_PCO3YgDJ10-7E7HGGWLnRw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_N7GhiTvZS06PDwIMZqre9w_7_2">9,171</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_CA_zWrhy0zO8ESEDpZaYPzUVw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_kwYdZEr2BU-A8CLbR7u3oQ_7_4">9,209</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_CA_GWK4x4v2CEO_XLZfGy4bag" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_bJr51LCBKEePFEqCE3YIEQ_7_6">17,457</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_CA_CPoxotEBkEWfPnuMEyPhGA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_jCoEo0izZkiiIP4S9d5Xqw_7_8">17,581</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_vbX-BxKaYkulIK-ayneTqw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_ecefXNgKFUSzHUjVtbpzaw_8_2">4,525</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_PXEq-FoxX0GyI-x9c5j4sw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_PcL0Cp3mLkmkZ8agVEudRQ_8_4">4,414</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_7aOIDzHHike5efYGK3u0Ng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_0uVYxlqHyEu5nn2amyZdCg_8_6">8,939</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_FL7r54afS0a9LIn9iwwnYQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_3MqsOyrbaU6DGHI_t625mQ_8_8">8,536</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_webuMjH8J0iIWbj4jlLryg_9_2">123,011</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_4lPj0PTlekux2EiLXXVW8A_9_4">104,570</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_MaDmyp1azUSPP7y5gd4gzA_9_6">239,406</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_WrEQuqoQr0ePIhdu4pZsWg_9_8">203,408</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock" id="Tb_LCb6BKS_7EqrGZlX4KVsZw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#xA0;Months&#xA0;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#xA0;Months&#xA0;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Services</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_A7WtsFHS9kmXI4q2dGn2gA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_-8AdhG5lqk6YK1J0e0yW2Q_5_2">109,372</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_ServiceMember_43sUi3ul-UOzGe1J9Gy58g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_dNW7NfdK3kCbZQOCCMx4bQ_5_4">93,479</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_BikqrCJ3xEyS9Q-KDI86Ow" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_tQIR0TusmU635L9esPK9Gg_5_6">212,205</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_ServiceMember_jy6bqD3tY0GKq9Sx1SkZ_g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_gbM-DGFjo0y8BXSXrihfrg_5_8">181,799</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Professional services and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_V25NG4_cvUWiicFrilzxtw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_P5ZSa40S2UOE0FTvWjcCgw_6_2">10,359</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_6rNcHEtOs0i2BlhU3n3nEw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_pUPwmt5M90eFXaoGmdWuNg_6_4">9,935</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_XqUNulpGiEyNd8I7oLR4OA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_OfASrptS-US2EsnHGBUFEQ_6_6">21,607</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_3l-CMECCdkS3gfrkAOIktA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_qqYIQDtsMEGt1RUKO-LjTg_6_8">19,114</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">License</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_LicenseMember_TB9HG7ofT0OWXw7So_cm1g" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_ahvWa0JWsUSnvGR4ZqEhWw_7_2">3,280</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_LicenseMember_3xas_FV3M0a4zfLl70egdg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_MBIJMyq0xk64kY9Xr7Y1Nw_7_4">1,156</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_LicenseMember_Ku6UHMAKWkKcmy2Hmd9iHQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_Sb_b01smD0GF4JWl236DRg_7_6">5,594</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_LicenseMember_S3YLuvmZpEq_FkwndXvsfw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_3lAfAWcZPkigd6Qhutyqcw_7_8">2,495</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_CZYAs2EojkeJyQ5rv6eb7Q_8_2">123,011</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_96xLgqGHfki0B5O8YBj1GA_8_4">104,570</ix:nonFraction></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_OdyW2DMioEiNTgITiOM_Fw_8_6">239,406</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" id="Tc_oO3ZSOY_Y0CXJzUXvS1y1Q_8_8">203,408</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">License revenues are derived from perpetual licenses granted to our customers to use our software products. Services revenues are comprised of ongoing transactional and/or subscription fees for use of our services and products by our customers and maintenance, which include revenues associated with maintenance and support of our services and products. Professional services and other revenues are comprised of professional services revenues from consulting, implementation and training services related to our services and products, hardware revenues and other revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table provides information by geographic area of operation for our long-lived assets. Long-lived assets represent property and equipment and intangible assets that are attributed to geographic areas.</span></p><ix:nonNumeric contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA" name="us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" id="Tb_HysCodS68UWZeQq2fViZKw" escape="true"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;&#xA0;&#xA0;&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#xA0;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#xA0;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total long-lived assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;&#xA0;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_srt_StatementGeographicalAxis_country_US_LbmGIhCiuk-iVF09MPnPkA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_dUX3A2aLWUig4E_QkXzrfw_4_2">145,327</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_country_US_fucxjzVaIkGPSUNQyy_CLA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_dDHuOIJumEet0zuLk7ag-A_4_4">102,649</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_Rgrvfe8BQkS-fShoh1IPng" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_4oDLdpqhtUKmJVswkCbkYw_5_2">36,476</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_P1QjWkrs6EK3EhZe-wKx1A" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_W_Ih8WpbmUuVtIDga0ytyQ_5_4">43,922</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_srt_StatementGeographicalAxis_country_CA_B2E8GQYrAU2BZJgGDS2jAA" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_RUsrRNg1ZEmCoHheA11KSw_6_2">74,569</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_country_CA_8XdYZkFfHUSnPuVREOILAw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_00RoAVcunUewFxLvtf4hug_6_4">84,943</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_76rjKFE2NEGWTNevfob01w" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_KRaKYCd7CEqk1zLyVC-QxQ_7_2">7,593</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_XQ6JIHRYg0ytZMqjwOVMQw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_kEHUnEXvHUSNwSmmjCqfBw_7_4">8,912</ix:nonFraction></span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#xA0;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_5MPW0Cu950CuovHdVCJQ7Q_8_2">263,965</ix:nonFraction></b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#xA0;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> <ix:nonFraction unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw" contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ" decimals="-3" format="ixt:numdotdecimal" name="us-gaap:NoncurrentAssets" scale="3" id="Tc_dOvbRbbUbkWc3Vkjs6YD5Q_8_4">240,426</ix:nonFraction></span></p></td></tr></table></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#x200B;</span></p></ix:nonNumeric><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="display:none;font-family:'Times New Roman','Times','serif';line-height:0pt;margin:0pt;"><span style="font-family:'Verdana';font-size:0pt;font-weight:bold;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="font-family:'Verdana';">65</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;padding-top:1pt;border-top:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><a id="_d0d8e237_1363_4001_8afe_d6aebd0d8edb"></a><a id="CORPORATEINFORMATION_285379"></a><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">CORPORATE INFORMATION</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:1pt;text-align:justify;border-bottom:1px solid #000000;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock Exchange Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Our common stock trades on the Toronto Stock Exchange under the symbol DSG and on The Nasdaq Stock Market under the symbol DSGX.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Transfer Agents</b></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;table-layout:auto;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#x200B;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Computershare Investor Services Inc.</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Computershare Trust Company</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">100 University Avenue</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">12039 West Alameda Parkway</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Toronto, Ontario M5J 2Y1</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Suite Z-2 Lakewood, Colorado</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">North America: (800) 663-9097</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">80228 USA</span></p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Phone: (416) 263-9200</span></p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Phone: (303) 262-0600</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Independent Registered Public Accounting Firm</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">KPMG LLP</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Bay Adelaide Centre</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">333 Bay Street</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Suite&#xA0;4600</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Toronto, Ontario M5H 2S5</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Phone: (416) 777-8500</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Investor Inquiries</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Investor Relations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">The Descartes Systems Group&#xA0;Inc.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">120 Randall Drive</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Waterloo, Ontario N2V 1C6</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Phone: (519) 746-8110 ext. 202358</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Toll Free: (800) 419-8495</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">E-mail: investor@descartes.com</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">www.descartes.com</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">The Descartes Systems Group&#xA0;Inc.</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Corporate Headquarters</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">120 Randall Drive</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Waterloo, Ontario N2V 1C6</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Canada</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Phone: (519) 746-8110</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:38.15pt;margin:0pt;"><span style="font-family:'Verdana';">(800) 419-8495</span></p><table style="border-collapse:collapse;border:0;"><tr><td style="vertical-align:text-top;white-space:nowrap;width:38.15pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><span style="font-family:'Verdana';">Fax:</span></p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><span style="font-family:'Verdana';">(519) 747-0082</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">info@descartes.com</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">www.descartes.com</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;page-break-after:always;width:88.24%;border:0;margin:30pt 5.88% 30pt 5.88%;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="margin-top:21.6pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 30pt 0pt;"><a style="font-family:'Verdana';" href="#TOC"><span style="font-style:normal;font-weight:normal;">Table of Contents</span></a></p></div><div style="clear:both;max-width:100%;position:relative;min-height:57pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 200pt 0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 200pt 0pt;"><span style="font-family:'Verdana';"><img src="dsgx-20220731xex99d1028.jpg" alt="Graphic" style="display:inline-block;height:57pt;left:0.28%;padding-bottom:0pt;position:relative;top:0pt;width:284.14pt;" /></span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#x200B;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:11pt;visibility:hidden;">&#x200B;</span></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:24pt 0pt 0pt 0pt;"><span style="visibility:hidden;">&#x200B;</span></p></div></div>
<div style="background-color:#000000;clear:both;height:2pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:avoid;width:88.24%;border:0;"></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-99.2
<SEQUENCE>3
<FILENAME>dsgx-20220731xex99d2.htm
<DESCRIPTION>EXHIBIT 99.2
<TEXT>
<!--Enhanced HTML document created with Toppan Merrill Bridge  9.14.0.96--><!--Created on: 9/7/2022 08:27:30 PM (UTC)--><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta charset="UTF-8"><title></title></head><body><div style="margin-top:30pt;"></div><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:14pt;">Exhibit&#160;99.2</font></p><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:14pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt 0pt 12pt 0pt;"><font style="font-size:16pt;"><img src="dsgx-20220731xex99d2001.jpg" alt="Graphical user interface, application, website&#10;&#10;Description automatically generated" style="display:inline-block;height:104.7pt;left:0%;padding-bottom:0.3pt;position:relative;top:0pt;width:540pt;"></font></p><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:16pt;">DESCARTES ANNOUNCES FISCAL 2023 SECOND QUARTER FINANCIAL RESULTS</font></p><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:14pt;">Record Revenues and Income from Operations</font></p><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:14pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">WATERLOO, Ontario &#8212; September 7, 2022 </b>&#8212; The Descartes Systems Group Inc. (TSX:DSG) (Nasdaq:DSGX) announced its financial results for its fiscal 2023 second quarter (<b style="font-weight:bold;">Q2FY23</b>). All financial results referenced are in United States (<b style="font-weight:bold;">US</b>) currency and, unless otherwise indicated, are determined in accordance with US Generally Accepted Accounting Principles (GAAP).</p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">&#8220;Descartes had a very successful quarter helping customers navigate the complexities of global supply chains and logistics,&#8221; said Edward J. Ryan, Descartes&#8217; CEO. &#8220;Geopolitical events, energy supplies and costs, and economic uncertainty have combined to present novel challenges for supply chain participants to manage. Our Global Logistics Network (GLN) is designed to help these shippers, carriers and logistics services providers connect and collaborate to plan and execute shipments in an efficient and sustainable manner. We&#8217;re pleased that we&#8217;ve been able to help so many existing and new customers improve their businesses and supply chains.&#8221;</p><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Q2FY23 Financial Results</b></p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;">As described in more detail below, key financial highlights for Descartes&#8217; Q2FY23 included:</p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Revenues of $123.0 million, up 18% from $104.6 million in the second quarter of fiscal 2022 (<b style="font-weight:bold;">Q2FY22</b>) and up 6% from $116.4 million in the previous quarter (<b style="font-weight:bold;">Q1FY23</b>);</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Revenues were comprised of services revenues of $109.4 million (89% of total revenues), professional services and other revenues of $10.3 million (8% of total revenues) and license revenues of $3.3 million (3% of total revenues). Services revenues were up 17% from $93.5 million in Q2FY22 and up 6% from $102.8 million in Q1FY23;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Cash provided by operating activities of $46.4 million, consistent with $46.4 million in Q2FY22 and up 5% from $44.4 million in Q1FY23. In Q2FY23, Descartes paid $10.5 million in contingent consideration in respect of previously completed acquisitions of which $5.3 million was accounted for as cash used in operating activities in Q2FY23;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Income from operations of $31.5 million, up 21% from $26.1 million in Q2FY22 and up 3% from $30.6 million in Q1FY23;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><font style="white-space:pre-wrap;">Net income of $22.9 million, down from $23.2 million in Q2FY22 and down from $23.1 million in Q1FY23.  Net income as a percentage of revenue was 19%, compared to 22% in Q2FY22 and 20% in Q1FY23;</font></p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Earnings per share on a diluted basis of $0.27, consistent with $0.27 in both Q2FY22 and Q1FY23, respectively; and</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;">Adjusted EBITDA of $54.0 million, up 18% from $45.9 million in Q2FY22 and up 5% from $51.2 million in Q1FY23. Adjusted EBITDA as a percentage of revenues was 44%, consistent with 44% in both Q2FY22 and Q1FY23, respectively.</p></td></tr></table><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt 0pt 24pt 0pt;">1</p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues are non-GAAP financial measures provided as a complement to financial results presented in accordance with GAAP. We define Adjusted EBITDA as earnings before interest, taxes, depreciation, amortization, stock-based compensation (for which we include related fees and taxes) and other charges (for which we include restructuring charges and acquisition-related expenses). These items are considered by management to be outside Descartes&#39; ongoing operational results. We define Adjusted EBITDA as a percentage of revenues as the quotient, expressed as a percentage, from dividing Adjusted EBITDA for a period by revenues for the corresponding period. A reconciliation of Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues to net income determined in accordance with GAAP is provided later in this release.</p><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 12pt 0pt;">The following table summarizes Descartes&#39; results in the categories specified below over the past 5 fiscal quarters (unaudited; dollar amounts, other than per share amounts, in millions):</p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:95%;" align="center"><tr style="height:1pt;"><td style="vertical-align:bottom;width:44.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:44.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.94%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-weight:bold;">Q2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.82%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">Q1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">Q4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">Q3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">Q2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:44.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-weight:bold;">FY23</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">FY23</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">FY22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">FY22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">FY22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:44.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 123.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 116.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 112.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 108.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 104.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:44.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Services revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.94%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 109.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.82%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 102.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 99.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 97.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 93.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:44.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Gross margin</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 77</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 76</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 76</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 76</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 76</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:44.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Cash provided by operating activities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.94%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 46.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.82%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 44.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 45.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 43.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 46.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:44.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Income from operations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 31.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 30.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 26.0</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 27.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 26.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:44.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.94%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 22.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.82%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 23.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 19.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 25.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 23.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:44.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Net income as a % of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 19</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 20</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 17</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 23</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 22</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:44.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Earnings per diluted share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.94%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 0.27</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.82%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.27</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.22</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.30</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.27</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:44.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Adjusted EBITDA</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 54.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 51.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 50.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 48.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 45.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:44.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Adjusted EBITDA as a % of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.13%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.94%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 44</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.82%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 44</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 45</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 44</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.46%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.23%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 44</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%</p></td></tr></table></div><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 6pt 0pt;"><b style="font-weight:bold;">Year-to-Date Financial Results</b></p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;">As described in more detail below, key financial highlights for Descartes&#8217; six-month period ended July 31, 2022 (<b style="font-weight:bold;">1HFY23</b>) included:</p><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Revenues of $239.4 million, up 18% from $203.4 million in the same period a year ago (<b style="font-weight:bold;">1HFY22</b>);</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Revenues were comprised of services revenues of $212.2 million (89% of total revenues), professional services and other revenues of $21.6 million (9% of total revenues) and license revenues of $5.6 million (2% of total revenues). Services revenues were up 17% from $181.8 million in 1HFY22;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Cash provided by operating activities of $90.8 million, up 4% from $87.3 million in 1HFY22. In 1HFY23, Descartes paid $10.5 million in contingent consideration in respect of previously completed acquisitions of which $5.3 million was accounted for as cash used in operating activities in 1HFY23;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Income from operations of $62.1 million, up 25% from $49.5 million in 1HFY22;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:17.85pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:17.85pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:2pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:2pt;margin-top:0pt;text-align:justify;">Net income of $46.0 million, up 11% from $41.6 million in 1HFY22. Net income as a percentage of revenues was 19%, compared to 20% in 1HFY22;</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:17.85pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:17.85pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:2pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:2pt;margin-top:0pt;text-align:justify;">Earnings per share on a diluted basis of $0.53, up 10% from $0.48 in 1HFY22; and</p></td></tr></table><table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:18pt;padding:0pt;"></td><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;"><font style="font-family:'Symbol';">&#183;</font></p></td><td style="padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin-bottom:0pt;margin-top:0pt;text-align:justify;">Adjusted EBITDA of $105.2 million, up 20% from $87.4 million in 1HFY22. Adjusted EBITDA as a percentage of revenues was 44%, compared to 43% in 1HFY22.</p></td></tr></table><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt 0pt 24pt 0pt;">2</p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;">The following table summarizes Descartes&#8217; results in the categories specified below over 1HFY23 and 1HFY22 (unaudited, dollar amounts in millions):</p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;" align="center"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-weight:bold;">1HFY23</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.53%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">1HFY22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:72.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 239.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 203.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:72.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Services revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 212.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.53%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 181.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Gross margin</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 76</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 76</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:72.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Cash provided by operating activities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 90.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.53%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 87.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Income from operations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 62.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 49.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 46.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.53%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 41.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Net income as a % of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 19</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 20</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:72.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Earnings per diluted share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 0.53</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.53%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.48</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Adjusted EBITDA</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 105.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 87.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Adjusted EBITDA as a % of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.53%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 44</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.53%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 43</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.5%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%</p></td></tr></table></div><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Cash Position</b></p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;">At July 31, 2022, Descartes had $189.0 million in cash. Cash decreased by $22.7 million in Q2FY23 and decreased $24.4 million in 1HFY23. The table set forth below provides a summary of cash flows for Q2FY23 and 1HFY23 in millions of dollars:</p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-weight:bold;">Q2FY23</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-weight:bold;">1HFY23</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Cash provided by operating activities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 46.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 90.8</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Additions to property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (1.8)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (3.4)</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Acquisitions of subsidiaries, net of cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (61.1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (104.0)</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Payment of debt issuance costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (0.1)</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Issuances of common shares, net of issuance costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 0.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 0.5</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Payment of contingent consideration</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (5.2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (5.2)</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Effect of foreign exchange rate on cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (1.2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (3.0)</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Net change in cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (22.8)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (24.4)</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Cash, beginning of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 211.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 213.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Cash, end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 189.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 189.0</b></p></td></tr></table></div><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Acquisition of XPS</b></p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">On June 3, 2022, Descartes acquired all of the shares of XPS Technologies, LLC (&#8220;XPS&#8221;), a provider of ecommerce multi-carrier parcel shipping solutions. The purchase price for the acquisition was approximately $61.1 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $75.0 million based on XPS achieving revenue-based targets over the first two years post-acquisition.</p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Normal-course issuer bid (NCIB)</b></p><p style="font-family:'Verdana';font-size:9pt;text-align:justify;margin:0pt;"><font style="font-size:9.5pt;">On June 7, 2022, Descartes announced a NCIB, commencing June 10, 2022, to purchase up to approximately 7.4 million common shares in the open market for cancellation. Under the NCIB, Descartes is permitted to repurchase for cancellation, at its discretion on or before June 9, 2023, up to 10% of the &#8220;public float&#8221; (calculated in accordance with the rules of the TSX) of Descartes&#8217; issued and outstanding common shares. Any purchases under the NCIB will be subject to the terms and limitations applicable to such NCIB, and will be made through the facilities of the TSX, Nasdaq, other designated exchanges and/or alternative Canadian trading systems, or by such other means as may be permitted by the Ontario Securities Commission or other applicable Canadian Securities Administrators. No common shares have yet been purchased pursuant to the NCIB.</font></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt 0pt 24pt 0pt;">3</p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-weight:bold;">Short-form base shelf prospectus</b></p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">On July 15, 2022, we filed the 2022 Base Shelf Prospectus, allowing us to offer and issue an unlimited quantity of the following securities during the 25-month period following thereafter: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. No securities have yet been sold pursuant to the 2022 Base Shelf Prospectus.</p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-weight:bold;">Conference Call</b></p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Members of Descartes&#39; executive management team will host a conference call to discuss the company&#39;s financial results at 5:30 p.m. ET on Wednesday, September 7. Designated numbers are +1 866 455 3403 for North America and +1 647 484 8332 for international, using Passcode 96484241#.</p><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 12pt 0pt;">The company will simultaneously conduct an audio webcast on the Descartes website at www.descartes.com/descartes/investor-relations. Phone conference dial-in or webcast log-in is required approximately 10 minutes beforehand.</p><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 12pt 0pt;">Replays of the conference call will be available until September 14, 2022, at the following address: <font style="color:#325f92;">https://onlinexperiences.com/Launch/QReg/ShowUUID=363B9D23-BDC9-437F-8BDC-42CA9C002737&amp;LangLocaleID=1033</font> using Passcode: EV00136656. An archived replay of the webcast will be available at www.descartes.com/descartes/investor-relations.</p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">About Descartes</b></p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;">Descartes (Nasdaq:DSGX) (TSX:DSG) is the global leader in providing on-demand, software-as-a-service solutions focused on improving the productivity, performance and security of logistics-intensive businesses. Customers use our modular, software-as-a-service solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access global trade data; file customs and security documents for imports and exports; and complete numerous other logistics processes by participating in the world&#39;s largest, collaborative multimodal logistics community. Our headquarters are in Waterloo, Ontario, Canada and we have offices and partners around the world. Learn more at&#160;www.descartes.com, and connect with us on&#160;LinkedIn&#160;and<font style="color:#555555;">&#160;</font>Twitter<font style="color:#555555;">.</font></p><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"># # #</p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-weight:bold;">Descartes Investor Contact:</b></p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;">Laurie McCauley +1-519-746-6114 x202358</p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">investor@descartes.com</p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;"><b style="font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Safe Harbor Statement</b></p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;">This release may contain forward-looking information within the meaning of applicable securities laws (&quot;forward-looking statements&quot;) that relates to Descartes&#39; expectations concerning future revenues and earnings, and our projections for any future reductions in expenses or growth in margins and generation of cash; our assessment of the current and future potential impact of the war in Ukraine and the COVID-19 pandemic on our business, results of operations and financial condition; continued growth and acquisitions including our assessment of any increased opportunity for our products and services as a result of trends in the logistics and supply chain industries; rate of profitable growth; demand for Descartes&#39; solutions; growth of Descartes&#39; Global Logistics Network (&#8220;GLN&#8221;); customer buying patterns; customer expectations of Descartes; development of the GLN and the benefits thereof to customers; and other matters. These forward-looking statements are based on certain</p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt 0pt 24pt 0pt;">4</p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">assumptions including the following: global shipment volumes continuing at levels generally consistent with those experienced historically; the current war in Ukraine and the COVID-19 pandemic not having a material negative impact on shipment volumes or on the demand for the products and services of Descartes by its customers and the ability of those customers to continue to pay for those products and services; countries continuing to implement and enforce existing and additional customs and security regulations relating to the provision of electronic information for imports and exports; countries continuing to implement and enforce existing and additional trade restrictions and sanctioned party lists with respect to doing business with certain countries, organizations, entities and individuals; Descartes&#39; continued operation of a secure and reliable business network; the stability of general economic and market conditions, currency exchange rates, and interest rates; equity and debt markets continuing to provide Descartes with access to capital; Descartes&#39; continued ability to identify and source attractive and executable business combination opportunities; Descartes&#39; ability to develop solutions that keep pace with the continuing changes in technology, and our continued compliance with third party intellectual property rights. These assumptions may prove to be inaccurate. Such forward-looking statements involve known and unknown risks, uncertainties and other factors that may cause the actual results, performance or achievements of Descartes, or developments in Descartes&#39; business or industry, to differ materially from the anticipated results, performance or achievements or developments expressed or implied by such forward-looking statements. Such factors include, but are not limited to, Descartes&#39; ability to successfully identify and execute on acquisitions and to integrate acquired businesses and assets, and to predict expenses associated with and revenues from acquisitions; the impact of network failures, information security breaches or other cyber-security threats; disruptions in the movement of freight and a decline in shipment volumes including as a result of contagious illness outbreaks; a deterioration of general economic conditions or instability in the financial markets accompanied by a decrease in spending by our customers; the ability to attract and retain key personnel and the ability to manage the departure of key personnel and the transition of our executive management team; changes in trade or transportation regulations that currently require customers to use services such as those offered by Descartes; changes in customer behaviour and expectations; Descartes&#8217; ability to successfully design and develop enhancements to our products and solutions; departures of key customers; the impact of foreign currency exchange rates; Descartes&#39; ability to retain or obtain sufficient capital in addition to its debt facility to execute on its business strategy, including its acquisition strategy; disruptions in the movement of freight; the potential for future goodwill or intangible asset impairment as a result of other-than-temporary decreases in Descartes&#39; market capitalization; and other factors and assumptions discussed in the section entitled, &quot;Certain Factors That May Affect Future Results&quot; in documents filed with the Securities and Exchange Commission, the Ontario Securities Commission and other securities commissions across Canada, including Descartes&#39; most recently filed Management&#39;s Discussion and Analysis. If any such risks actually occur, they could materially adversely affect our business, financial condition or results of operations. In that case, the trading price of our common shares could decline, perhaps materially. Readers are cautioned not to place undue reliance upon any such forward-looking statements, which speak only as of the date made. Forward-looking statements are provided for the purpose of providing information about management&#39;s current expectations and plans relating to the future. Readers are cautioned that such information may not be appropriate for other purposes. We do not undertake or accept any obligation or undertaking to release publicly any updates or revisions to any forward-looking statements to reflect any change in our expectations or any change in events, conditions or circumstances on which any such statement is based, except as required by law.</p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">Reconciliation of Non-GAAP Financial Measures - Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues</b></p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;">We prepare and release quarterly unaudited and annual audited financial statements prepared in accordance with GAAP. We also disclose and discuss certain non-GAAP financial information,</p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt 0pt 24pt 0pt;">5</p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">used to evaluate our performance, in this and other earnings releases and investor conference calls as a complement to results provided in accordance with GAAP. We believe that current shareholders and potential investors in our company use non-GAAP financial measures, such as Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues, in making investment decisions about our company and measuring our operational results.</p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">The term &#8220;Adjusted EBITDA&#8221; refers to a financial measure that we define as earnings before certain charges that management considers to be non-operating expenses and which consist of interest, taxes, depreciation, amortization, stock-based compensation (for which we include related fees and taxes) and other charges (for which we include restructuring charges and acquisition-related expenses). Adjusted EBITDA as a percentage of revenues divides Adjusted EBITDA for a period by the revenues for the corresponding period and expresses the quotient as a percentage.</p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Management considers these non-operating expenses to be outside the scope of Descartes&#8217; ongoing operations and the related expenses are not used by management to measure operations. Accordingly, these expenses are excluded from Adjusted EBITDA, which we reference to both measure our operations and as a basis of comparison of our operations from period-to-period. Management believes that investors and financial analysts measure our business on the same basis, and we are providing the Adjusted EBITDA financial metric to assist in this evaluation and to provide a higher level of transparency into how we measure our own business. However, Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues are non-GAAP financial measures and may not be comparable to similarly titled measures reported by other companies. Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues should not be construed as a substitute for net income determined in accordance with GAAP or other non-GAAP measures that may be used by other companies, such as EBITDA. The use of Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues does have limitations. In particular, we have completed six acquisitions since the beginning of fiscal 2022 and may complete additional acquisitions in the future that will result in acquisition-related expenses and restructuring charges. As these acquisition-related expenses and restructuring charges may continue as we pursue our consolidation strategy, some investors may consider these charges and expenses as a recurring part of operations rather than expenses that are not part of operations.</p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;">The table below reconciles Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues to net income reported in our unaudited Consolidated Statements of Operations for Q2FY23, Q1FY23, Q4FY22, Q3FY22, and Q2FY22, which we believe is the most directly comparable GAAP measure.</p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt 0pt 24pt 0pt;">6</p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">(US dollars in millions)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-weight:bold;">Q2FY23</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">Q1FY23</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">Q4FY22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">Q3FY22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">Q2FY22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Net income</b>, as reported on Consolidated Statements of Operations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 22.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 23.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 19.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 25.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 23.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Adjustments to reconcile to Adjusted EBITDA:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Interest expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 0.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Investment income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (0.5)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (0.2)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (0.1)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (0.1)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (0.1)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 8.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 7.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 6.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 2.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 2.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Depreciation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 1.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 1.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 1.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 1.3</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Amortization of intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 16.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 15.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 15.0</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 15.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 15.0</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Stock-based compensation and related taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 3.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 2.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 2.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 3.0</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 3.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Other charges</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1.3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 1.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 4.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><b style="font-weight:bold;">Adjusted EBITDA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 54.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 51.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 50.1</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 48.2</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 45.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 123.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 116.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 112.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 108.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 104.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Net income as % of revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 19</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 20</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 17</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 23</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 22</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:47.4%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Adjusted EBITDA as % of revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 44</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 44</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 45</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 44</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 44</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%</p></td></tr></table></div><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Verdana';font-size:10pt;text-align:justify;margin:0pt;">The table below reconciles Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues to net income reported in our unaudited Consolidated Statements of Operations for 1HFY23 and 1HFY22, which we believe is the most directly comparable GAAP measure.</p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.57%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">(US dollars in millions)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-weight:bold;">1HFY23</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">1HFY22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Net income</b>, as reported on Consolidated Statements of Operations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 46.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 41.6</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Adjustments to reconcile to Adjusted EBITDA:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Interest expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 0.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Investment income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (0.6)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (0.1)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 16.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 7.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Depreciation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 2.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 2.5</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Amortization of intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 31.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 28.8</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Stock-based compensation and related taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 6.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 5.7</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Other charges</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 2.8</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.9</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Adjusted EBITDA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 105.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 87.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 239.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 203.4</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Net income as % of revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 19</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 20</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:74.57%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Adjusted EBITDA as % of revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 44</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">%&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.93%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 43</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">%</p></td></tr></table></div><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:11pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt 0pt 24pt 0pt;">7</p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-size:11pt;font-weight:bold;">THE DESCARTES SYSTEMS GROUP INC.</b></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-size:11pt;font-weight:bold;">CONDENSED CONSOLIDATED BALANCE SHEETS</b></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">(US DOLLARS IN THOUSANDS; US GAAP; UNAUDITED)</p><p style="font-family:'Verdana';font-size:10pt;border-top:1px solid #000000;margin:0pt;"><font style="font-size:5pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:12pt;visibility:hidden;">&#8203;</font></p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.2pt 0pt 0pt;"><b style="font-weight:bold;">July 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">January 31,</p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.2pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">2022</p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">(Audited)</p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">ASSETS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">CURRENT ASSETS</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 189,030</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 213,437</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Accounts receivable (net)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Trade</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 48,913</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 41,705</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 11,420</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 14,075</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Prepaid expenses and other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 20,664</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 21,974</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Inventory</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 814</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 868</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 270,841</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 292,059</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">OTHER LONG-TERM ASSETS</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 19,262</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 18,652</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">PROPERTY AND EQUIPMENT, NET</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 11,400</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 10,817</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">RIGHT-OF-USE ASSETS</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 8,089</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 10,571</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">DEFERRED INCOME TAXES</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 12,777</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 14,962</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">INTANGIBLE ASSETS, NET</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 252,565</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 229,609</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">GOODWILL</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 671,802</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 608,761</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1,246,736</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 1,185,431</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">CURRENT LIABILITIES</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Accounts payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 9,837</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 10,566</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 71,416</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 56,442</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 3,604</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 4,029</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Income taxes payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 4,449</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 5,616</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 66,547</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 56,780</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 155,853</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 133,433</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">LONG-TERM DEBT</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> &#8212;</b></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">LEASE OBLIGATIONS</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 5,094</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 7,382</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">DEFERRED REVENUE</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1,746</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 1,920</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">INCOME TAXES PAYABLE</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 8,303</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 7,354</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">DEFERRED INCOME TAXES</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 37,301</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 35,523</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 208,297</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 185,612</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">SHAREHOLDERS&#8217; EQUITY</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Common shares &#8211; unlimited shares authorized; Shares issued and outstanding totaled 84,788,547 at July 31, 2022 (January 31, 2022 &#8211; 84,756,210)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 537,003</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 536,297</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Additional paid-in capital</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 479,620</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 473,303</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Accumulated other comprehensive income (loss)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (26,813)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (12,393)</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Retained earnings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 48,629</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 2,612</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1,038,439</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 999,819</font></p></td></tr><tr><td style="vertical-align:bottom;width:72.56%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1,246,736</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 1,185,431</font></p></td></tr></table></div><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:11pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt 0pt 24pt 0pt;">8</p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-size:11pt;font-weight:bold;">THE DESCARTES SYSTEMS GROUP INC.</b></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-size:11pt;font-weight:bold;">CONSOLIDATED STATEMENTS OF OPERATIONS</b></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">(US DOLLARS IN THOUSANDS, EXCEPT PER SHARE AND WEIGHTED AVERAGE SHARE AMOUNTS; US GAAP; UNAUDITED)</p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:12pt;visibility:hidden;">&#8203;</font></p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:20.13%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.2pt 0pt 0pt;"><b style="font-weight:bold;">Three Months Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;">&#160;&#160;&#160;&#160;</p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:20.13%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.2pt 0pt 0pt;"><b style="font-weight:bold;">Six Months Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.2pt 0pt 0pt;"><b style="font-weight:bold;">July 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">July 31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.2pt 0pt 0pt;"><b style="font-weight:bold;">July 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">July 31,</p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.2pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.2pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="color:#01415b;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="color:#01415b;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="color:#01415b;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="color:#01415b;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="color:#01415b;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="color:#01415b;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="color:#01415b;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="color:#01415b;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="color:#01415b;visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">REVENUES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 123,011</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 104,570</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 239,406</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 203,408</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">COST OF REVENUES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 28,919</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 25,470</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 56,742</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 49,319</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">GROSS MARGIN</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 94,092</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 79,100</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 182,664</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 154,089</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">EXPENSES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Sales and marketing</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 14,315</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 11,328</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 27,551</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 22,339</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 18,155</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 15,473</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 34,724</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 30,692</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">General and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 12,700</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 10,855</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 24,342</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 21,861</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Other charges</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1,289</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 414</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 2,771</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 934</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Amortization of intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 16,086</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 14,911</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 31,134</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 28,746</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 62,545</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 52,981</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 120,522</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 104,572</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">INCOME FROM OPERATIONS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 31,547</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 26,119</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 62,142</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 49,517</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">INTEREST EXPENSE</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (284)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (272)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (562)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (549)</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">INVESTMENT INCOME</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 461</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 61</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 614</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 124</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">INCOME BEFORE INCOME TAXES</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 31,724</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 25,908</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 62,194</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 49,092</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">INCOME TAX EXPENSE (RECOVERY)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 7,498</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 4,732</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 12,339</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 6,866</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Deferred</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1,324</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (2,000)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 3,838</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 629</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 8,822</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 2,732</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 16,177</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 7,495</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">NET INCOME</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 22,902</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 23,176</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 46,017</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 41,597</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">EARNINGS PER SHARE</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 0.27</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.27</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 0.54</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.49</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 0.27</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.27</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 0.53</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 0.48</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">&#160;&#160;</p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 84,783</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 84,566</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 84,774</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 84,534</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 86,338</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 86,128</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.4pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 86,344</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.8pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 86,066</font></p></td></tr></table></div><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:12pt;visibility:hidden;">&#8203;</font></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:11pt;visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt 0pt 24pt 0pt;">9</p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-bottom:30pt;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:always;width:88.24%;border-width:0;"><div style="max-width:100%;padding-left:5.88%;padding-right:5.88%;position:relative;"><div style="clear:both;max-width:100%;position:relative;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-size:11pt;font-weight:bold;">THE DESCARTES SYSTEMS GROUP INC.</b></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><b style="font-size:11pt;font-weight:bold;">CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS</b></p><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">(US DOLLARS IN THOUSANDS; US GAAP; UNAUDITED)</p><p style="font-family:'Verdana';font-size:10pt;border-top:1px solid #000000;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p><div><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;" align="center"><tr style="height:1pt;"><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:1pt;visibility:hidden;">&#8203;</font></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.45%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-weight:bold;">Three Months Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:20.5%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-weight:bold;">Six Months Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-weight:bold;">July 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">July 31,</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-weight:bold;">July 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">July 31,</p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt;"><font style="font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;">2021</p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">OPERATING ACTIVITIES</b></p></td><td style="vertical-align:bottom;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Net income</p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 22,902</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 23,176</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 46,017</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 41,597</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Adjustments to reconcile net income to cash provided by operating activities:</p></td><td style="vertical-align:bottom;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Depreciation</p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1,301</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 1,287</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 2,546</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 2,502</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Amortization of intangible assets</p></td><td style="vertical-align:bottom;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 16,086</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 14,911</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 31,134</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 28,746</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Stock-based compensation expense</p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 3,736</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 3,015</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 6,523</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 5,167</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Other non-cash operating activities</p></td><td style="vertical-align:bottom;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 68</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 281</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 51</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 557</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Deferred tax (recovery) expense </p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 1,324</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (2,000)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 3,838</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 629</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Changes in operating assets and liabilities</p></td><td style="vertical-align:bottom;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 982</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 5,704</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 722</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 8,082</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Cash provided by operating activities</p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 46,399</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 46,374</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 90,831</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 87,280</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">INVESTING ACTIVITIES</b></p></td><td style="vertical-align:bottom;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Additions to property and equipment</p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (1,786)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (941)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (3,422)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">(2,596)</p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Acquisition of subsidiaries, net of cash acquired</p></td><td style="vertical-align:bottom;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (61,096)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (54,418)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (103,988)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">(90,278)</p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Cash used in investing activities</p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (62,882)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (55,359)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (107,410)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">(92,874)</p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">FINANCING ACTIVITIES</b></p></td><td style="vertical-align:bottom;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Credit facility and other debt repayments</p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (1,068)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">(1,068)</p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Payment of debt issuance costs</p></td><td style="vertical-align:bottom;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> &#8212;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (66)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">(60)</p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Issuance of common shares for cash, net of issuance costs</p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 111</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 850</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 499</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 1,497</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;">Payment of contingent consideration</p></td><td style="vertical-align:bottom;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><font style="margin-left:0pt;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (5,215)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> &#8212;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (5,215)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> &#8212;</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Cash (used in) provided by financing activities</p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (5,104)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (218)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (4,782)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 369</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;">Effect of foreign exchange rate changes on cash</p></td><td style="vertical-align:bottom;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (1,162)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (576)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (3,046)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">(78)</p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Decrease in cash</b></p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (22,749)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="white-space:pre-wrap;"> (9,779)</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> (24,407)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;">(5,303)</p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Cash, beginning of period</b></p></td><td style="vertical-align:bottom;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 211,779</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 138,137</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 213,437</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 133,661</font></p></td></tr><tr><td style="vertical-align:bottom;width:55.99%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><b style="font-weight:bold;">Cash, end of period</b></p></td><td style="vertical-align:bottom;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 189,030</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 128,358</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;margin:0pt;">&#160;</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;"> 189,030</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt;"><font style="font-weight:bold;visibility:hidden;">&#8203;</font></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Verdana';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><font style="white-space:pre-wrap;"> 128,358</font></p></td></tr></table></div><p style="font-family:'Verdana';font-size:10pt;margin:0pt;"><font style="visibility:hidden;">&#8203;</font></p></div><div style="clear:both;margin-bottom:30pt;width:100%;"><p style="font-family:'Verdana';font-size:10pt;text-align:center;margin:0pt 0pt 24pt 0pt;">10</p></div></div><hr style="background-color:#000000;clear:both;color:#000000;height:2pt;line-height:0;margin-left:5.88%;margin-right:5.88%;margin-top:30pt;page-break-after:avoid;width:88.24%;border-width:0;"></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>4
<FILENAME>dsgx-20220731.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--XBRL document created with Toppan Merrill Bridge  9.6.8167.22744 -->
<!--Based on XBRL 2.1-->
<!--Created on: 9/7/2022 8:26:53 PM-->
<!--Modified on: 9/7/2022 8:26:53 PM-->
<xsd:schema targetNamespace="http://www.descartes.com/20220731" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dsgx="http://www.descartes.com/20220731" xmlns:deprecated="http://www.xbrl.org/2009/role/deprecated" xmlns:us-roles="http://fasb.org/us-roles/2021-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2021" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xl="http://www.xbrl.org/2003/XLink" xmlns:us-types="http://fasb.org/us-types/2021-01-31" xmlns:srt-roles="http://fasb.org/srt-roles/2021-01-31" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:sic="http://xbrl.sec.gov/sic/2021" xmlns:srt-types="http://fasb.org/srt-types/2021-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2021" xmlns:enum2="http://xbrl.org/2020/extensible-enumerations-2.0" xmlns:country="http://xbrl.sec.gov/country/2021" xmlns:net="http://www.xbrl.org/2009/role/net" xmlns:dei="http://xbrl.sec.gov/dei/2021q4" xmlns:naics="http://xbrl.sec.gov/naics/2021" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:negated="http://www.xbrl.org/2009/role/negated" xmlns:exch="http://xbrl.sec.gov/exch/2021" xmlns:attributeFormDefault="unqualified" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:srt="http://fasb.org/srt/2021-01-31">
  <xsd:annotation>
    <xsd:appinfo>
      <link:roleType roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets" id="StatementCondensedConsolidatedBalanceSheets">
        <link:definition>00100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations" id="StatementCondensedConsolidatedStatementsOfOperations">
        <link:definition>00200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" id="StatementCondensedConsolidatedStatementsOfComprehensiveIncome">
        <link:definition>00300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" id="StatementCondensedConsolidatedStatementsOfCashFlows">
        <link:definition>00500 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails" id="DisclosureTradeAccountsReceivableTradeReceivablesDetails">
        <link:definition>40501 - Disclosure - Trade Accounts Receivable - Trade Receivables (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesDetails" id="DisclosureOtherReceivablesDetails">
        <link:definition>40601 - Disclosure - Other Receivables (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" id="DisclosurePropertyAndEquipmentDetails">
        <link:definition>40801 - Disclosure - Property and Equipment (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" id="DisclosureIntangibleAssetsDetails">
        <link:definition>40901 - Disclosure - Intangible Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" id="DisclosureAccruedLiabilitiesDetails">
        <link:definition>41101 - Disclosure - Accrued Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" id="DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails">
        <link:definition>41302 - Disclosure - Leases - Components of Operating Lease Expense (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" id="DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails">
        <link:definition>41303 - Disclosure - Leases - Maturities of Operating Lease Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" id="DisclosureOtherChargesComponentsOfOtherChargesDetails">
        <link:definition>42001 - Disclosure - Other Charges - Components of Other Charges (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" id="DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails">
        <link:definition>42101 - Disclosure - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity" id="StatementCondensedConsolidatedStatementsOfShareholdersEquity">
        <link:definition>00400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitionsDetails" id="DisclosureAcquisitionsDetails">
        <link:definition>40301 - Disclosure - Acquisitions (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" id="DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails">
        <link:definition>40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" id="DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails">
        <link:definition>40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" id="DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails">
        <link:definition>40304 - Disclosure - Acquisitions - Acquired Intangible Assets Useful Lives (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" id="DisclosureFairValueMeasurementsDetails">
        <link:definition>40401 - Disclosure - Fair Value Measurements (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" id="DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails">
        <link:definition>40402 - Disclosure - Fair Value Measurements - Derivative Instruments at Fair Value (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" id="DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails">
        <link:definition>40403 - Disclosure - Fair Value Measurements - Changes in fair value measurements (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureGoodwillDetails" id="DisclosureGoodwillDetails">
        <link:definition>41001 - Disclosure - Goodwill (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureLongTermDebtDetails" id="DisclosureLongTermDebtDetails">
        <link:definition>41201 - Disclosure - Long-term Debt (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureLeasesDetails" id="DisclosureLeasesDetails">
        <link:definition>41301 - Disclosure - Leases (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" id="DisclosureCommitmentsContingenciesAndGuaranteesDetails">
        <link:definition>41401 - Disclosure - Commitments, Contingencies and Guarantees (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureShareCapitalDetails" id="DisclosureShareCapitalDetails">
        <link:definition>41501 - Disclosure - Share Capital (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareDetails" id="DisclosureEarningsPerShareDetails">
        <link:definition>41601 - Disclosure - Earnings Per Share (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" id="DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails">
        <link:definition>41602 - Disclosure - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" id="DisclosureStockBasedCompensationPlansAdditionalInformationDetails">
        <link:definition>41701 - Disclosure - Stock-Based Compensation Plans - Additional information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" id="DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails">
        <link:definition>41702 - Disclosure - Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" id="DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails">
        <link:definition>41705 - Disclosure - Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" id="DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails">
        <link:definition>41706 - Disclosure - Stock-Based Compensation Plans - Summary of Nonvested Share (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" id="DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails">
        <link:definition>41707 - Disclosure - Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" id="DisclosureIncomeTaxesAdditionalInformationDetails">
        <link:definition>41801 - Disclosure - Income Taxes - Additional information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss" id="DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss">
        <link:definition>41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDefaultDetailss" id="DisclosureContractBalancesPerformanceObligationsAndContractCostsDefaultDetailss">
        <link:definition>41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs Default (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" id="DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails">
        <link:definition>42201 - Disclosure - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" id="DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails">
        <link:definition>42202 - Disclosure - Segmented Information - Segmented Revenue by Revenue Type (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" id="DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails">
        <link:definition>42203 - Disclosure - Segmented Information - Long-lived Assets by Geographical Location (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DocumentDocumentAndEntityInformation" id="DocumentDocumentAndEntityInformation">
        <link:definition>00090 - Document - Document And Entity Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" id="StatementCondensedConsolidatedBalanceSheetsParentheticals">
        <link:definition>00105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeParentheticals" id="StatementCondensedConsolidatedStatementsOfComprehensiveIncomeParentheticals">
        <link:definition>00305 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureDescriptionOfBusiness" id="DisclosureDescriptionOfBusiness">
        <link:definition>10101 - Disclosure - Description of the Business</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentation" id="DisclosureBasisOfPresentation">
        <link:definition>10201 - Disclosure - Basis of Presentation</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitions" id="DisclosureAcquisitions">
        <link:definition>10301 - Disclosure - Acquisitions</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurements" id="DisclosureFairValueMeasurements">
        <link:definition>10401 - Disclosure - Fair Value Measurements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivable" id="DisclosureTradeAccountsReceivable">
        <link:definition>10501 - Disclosure - Trade Accounts Receivable</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherReceivables" id="DisclosureOtherReceivables">
        <link:definition>10601 - Disclosure - Other Receivables</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureInventory" id="DisclosureInventory">
        <link:definition>10701 - Disclosure - Inventory</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipment" id="DisclosurePropertyAndEquipment">
        <link:definition>10801 - Disclosure - Property and Equipment</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIntangibleAssets" id="DisclosureIntangibleAssets">
        <link:definition>10901 - Disclosure - Intangible Assets</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureGoodwill" id="DisclosureGoodwill">
        <link:definition>11001 - Disclosure - Goodwill</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilities" id="DisclosureAccruedLiabilities">
        <link:definition>11101 - Disclosure - Accrued Liabilities</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureLongTermDebt" id="DisclosureLongTermDebt">
        <link:definition>11201 - Disclosure - Long-term Debt</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureLeases" id="DisclosureLeases">
        <link:definition>11301 - Disclosure - Leases</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees" id="DisclosureCommitmentsContingenciesAndGuarantees">
        <link:definition>11401 - Disclosure - Commitments, Contingencies and Guarantees</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureShareCapital" id="DisclosureShareCapital">
        <link:definition>11501 - Disclosure - Share Capital</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureEarningsPerShare" id="DisclosureEarningsPerShare">
        <link:definition>11601 - Disclosure - Earnings Per Share</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlans" id="DisclosureStockBasedCompensationPlans">
        <link:definition>11701 - Disclosure - Stock-Based Compensation Plans</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIncomeTaxes" id="DisclosureIncomeTaxes">
        <link:definition>11801 - Disclosure - Income Taxes</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts" id="DisclosureContractBalancesPerformanceObligationsAndContractCosts">
        <link:definition>11901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherCharges" id="DisclosureOtherCharges">
        <link:definition>12001 - Disclosure - Other Charges</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation" id="DisclosureSupplementalCashFlowInformation">
        <link:definition>12101 - Disclosure - Supplemental Cash Flow Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSegmentedInformation" id="DisclosureSegmentedInformation">
        <link:definition>12201 - Disclosure - Segmented Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" id="DisclosureBasisOfPresentationPolicies">
        <link:definition>20202 - Disclosure - Basis of Presentation (Policies)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitionsTables" id="DisclosureAcquisitionsTables">
        <link:definition>30303 - Disclosure - Acquisitions (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsTables" id="DisclosureFairValueMeasurementsTables">
        <link:definition>30403 - Disclosure - Fair Value Measurements (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables" id="DisclosureTradeAccountsReceivableTables">
        <link:definition>30503 - Disclosure - Trade Accounts Receivable (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesTables" id="DisclosureOtherReceivablesTables">
        <link:definition>30603 - Disclosure - Other Receivables (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables" id="DisclosurePropertyAndEquipmentTables">
        <link:definition>30803 - Disclosure - Property and Equipment (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsTables" id="DisclosureIntangibleAssetsTables">
        <link:definition>30903 - Disclosure - Intangible Assets (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureGoodwillTables" id="DisclosureGoodwillTables">
        <link:definition>31003 - Disclosure - Goodwill (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables" id="DisclosureAccruedLiabilitiesTables">
        <link:definition>31103 - Disclosure - Accrued Liabilities (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureLeasesTables" id="DisclosureLeasesTables">
        <link:definition>31303 - Disclosure - Leases (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareTables" id="DisclosureEarningsPerShareTables">
        <link:definition>31603 - Disclosure - Earnings Per Share (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" id="DisclosureStockBasedCompensationPlansTables">
        <link:definition>31703 - Disclosure - Stock-Based Compensation Plans (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" id="DisclosureContractBalancesPerformanceObligationsAndContractCostsTables">
        <link:definition>31903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherChargesTables" id="DisclosureOtherChargesTables">
        <link:definition>32003 - Disclosure - Other Charges (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables" id="DisclosureSupplementalCashFlowInformationTables">
        <link:definition>32103 - Disclosure - Supplemental Cash Flow Information (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationTables" id="DisclosureSegmentedInformationTables">
        <link:definition>32203 - Disclosure - Segmented Information (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails" id="DisclosureAcquisitionsProFormaResultsOfOperationsDetails">
        <link:definition>40305 - Disclosure - Acquisitions - Pro Forma Results of Operations (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails" id="DisclosureTradeAccountsReceivableDetails">
        <link:definition>40502 - Disclosure - Trade Accounts Receivable (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" id="DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails">
        <link:definition>40503 - Disclosure - Trade Accounts Receivable - Provision for Credit Losses (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails" id="DisclosureOtherReceivablesAdditionalInformationDetails">
        <link:definition>40602 - Disclosure - Other Receivables - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" id="DisclosureIntangibleAssetsAdditionalInformationDetails">
        <link:definition>40902 - Disclosure - Intangible Assets - Additional information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" id="DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails">
        <link:definition>41703 - Disclosure - Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" id="DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails">
        <link:definition>41704 - Disclosure - Stock-Based Compensation Plans - Summary of Option Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" id="DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails">
        <link:definition>41708 - Disclosure - Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" id="DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails">
        <link:definition>41901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetails" id="DisclosureContractBalancesPerformanceObligationsAndContractCostsDetails">
        <link:definition>41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails" id="DisclosureSegmentedInformationAdditionalInformationDetails">
        <link:definition>42204 - Disclosure - Segmented Information - Additional information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:linkbaseRef xlink:type="simple" xlink:href="dsgx-20220731_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="dsgx-20220731_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="dsgx-20220731_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="dsgx-20220731_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:roleType roleURI="http://www.descartes.com/role/DisclosureStandardAndCustomAxisDomainDefaults" id="DisclosureStandardAndCustomAxisDomainDefaults">
        <link:definition>99900 - Disclosure - Standard And Custom Axis Domain Defaults</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:import namespace="http://www.xbrl.org/2009/role/net" schemaLocation="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd" />
  <xsd:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
  <xsd:import namespace="http://fasb.org/us-gaap/2021-01-31" schemaLocation="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/country/2021" schemaLocation="https://xbrl.sec.gov/country/2021/country-2021.xsd" />
  <xsd:import namespace="http://www.xbrl.org/dtr/type/2020-01-21" schemaLocation="https://www.xbrl.org/dtr/type/2020-01-21/types.xsd" />
  <xsd:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" />
  <xsd:import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd" />
  <xsd:import namespace="http://fasb.org/srt/2021-01-31" schemaLocation="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd" />
  <xsd:import namespace="http://xbrl.sec.gov/dei/2021q4" schemaLocation="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd" />
  <xsd:element name="AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" id="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element name="AmountsRecoverableFromFundsHeldInEscrow" id="dsgx_AmountsRecoverableFromFundsHeldInEscrow" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" id="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element name="BusinessCombinationConsiderationTransferredPayable" id="dsgx_BusinessCombinationConsiderationTransferredPayable" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element name="BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" id="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" id="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element name="BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" id="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="CRSUAwardNonvestedNumber" id="dsgx_CRSUAwardNonvestedNumber" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="CRSUAwardNonvestedWeightedAverageContractualLife" id="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CRSUAwardsForfeitedInPeriod" id="dsgx_CRSUAwardsForfeitedInPeriod" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CRSUAwardsGrantsInPeriod" id="dsgx_CRSUAwardsGrantsInPeriod" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CRSUAwardsOutstandingNumber" id="dsgx_CRSUAwardsOutstandingNumber" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="CRSUAwardsVestedAndSettledInCash" id="dsgx_CRSUAwardsVestedAndSettledInCash" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CRSUAwardsWeightedAverageContractualLife" id="dsgx_CRSUAwardsWeightedAverageContractualLife" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CanadaOrUsPrimeRateBaOrLiborMember" id="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CashSettledRestrictedShareUnitsCompensationExpense" id="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" id="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" id="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" id="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="ContractWithCustomerContractAssetBeforeAdoptionOfASC606" id="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" id="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element name="ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" id="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element name="CoreTransportTechnologiesNzLimitedMember" id="dsgx_CoreTransportTechnologiesNzLimitedMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DeferredShareUnitLiabilityNumberOfCommonShares" id="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="DeferredShareUnitPlanMember" id="dsgx_DeferredShareUnitPlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DeferredShareUnitsCompensationExpense" id="dsgx_DeferredShareUnitsCompensationExpense" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="DeferredShareUnitsGrantsInPeriod" id="dsgx_DeferredShareUnitsGrantsInPeriod" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" id="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="DeferredShareUnitsOutstandingNumber" id="dsgx_DeferredShareUnitsOutstandingNumber" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="DeferredShareUnitsRedeemedAndSettledInCash" id="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DeferredTaxCharges" id="dsgx_DeferredTaxCharges" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="DerivativeInstrumentCommonSharesHeldPerShare" id="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="DerivativeInstrumentSharesOfCommonStockHeld" id="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="EquipmentInstalledWithCustomersMember" id="dsgx_EquipmentInstalledWithCustomersMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ExistingTechnologyMember" id="dsgx_ExistingTechnologyMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="IncreaseDecreaseInOperatingLeaseLiabilities" id="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" id="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" id="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="NoteToFinancialStatementDetailsTextual" id="dsgx_NoteToFinancialStatementDetailsTextual" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="OtherReceivablesTableTextBlock" id="dsgx_OtherReceivablesTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="OtherReceivablesTextBlock" id="dsgx_OtherReceivablesTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="PSUsAndRSUsMember" id="dsgx_PSUsAndRSUsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="PinPointMember" id="dsgx_PinPointMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ProfessionalServicesAndOtherMember" id="dsgx_ProfessionalServicesAndOtherMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="RevolvingOperatingCreditFacilityMember" id="dsgx_RevolvingOperatingCreditFacilityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" id="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="SeniorSecuredCreditFacilityMember" id="dsgx_SeniorSecuredCreditFacilityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="instant" />
  <xsd:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ShelfProspectusMaximumAmount" id="dsgx_ShelfProspectusMaximumAmount" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element name="ShelfProspectusMember" id="dsgx_ShelfProspectusMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ShelfProspectusPeriod" id="dsgx_ShelfProspectusPeriod" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="StockOptionsTreasuryStockMethodMember" id="dsgx_StockOptionsTreasuryStockMethodMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="The2019AcquisitionsMember" id="dsgx_The2019AcquisitionsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="The2020AcquisitionsMember" id="dsgx_The2020AcquisitionsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="The2020BaseShelfProspectusMember" id="dsgx_The2020BaseShelfProspectusMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="The2021AcquisitionsMember" id="dsgx_The2021AcquisitionsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="VelocityMailMember" id="dsgx_VelocityMailMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="VisualComplianceMember" id="dsgx_VisualComplianceMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="statement-statement-note-6-other-receivables-other-receivables-details" id="dsgx_statement-statement-note-6-other-receivables-other-receivables-details" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="PercentageOfAccountReceivable" id="dsgx_PercentageOfAccountReceivable" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="QuestawebMember" id="dsgx_QuestawebMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="PortrixMember" id="dsgx_PortrixMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="GreenmileMember" id="dsgx_GreenmileMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" id="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element name="Acquisitions2022Member" id="dsgx_Acquisitions2022Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" id="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element name="NetChbLlcMember" id="dsgx_NetChbLlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="The2022AcquisitionsMember" id="dsgx_The2022AcquisitionsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="RightsToPurchaseCommonSharesMember" id="dsgx_RightsToPurchaseCommonSharesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="FoxtrotMember" id="dsgx_FoxtrotMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="XpsMember" id="dsgx_XpsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CoreKontainersShiptrackGreenmileNetchbAndXpsMember" id="dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="Fiscal2023AcquisitionsMember" id="dsgx_Fiscal2023AcquisitionsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="XpsTechnologyLlcMember" id="dsgx_XpsTechnologyLlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="MaximumPercentageOfSharesToBeRepurchased" id="dsgx_MaximumPercentageOfSharesToBeRepurchased" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="DerivativeGainOnDerivatives" id="dsgx_DerivativeGainOnDerivatives" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" />
  <xsd:element name="OtherReceivablesDisclosureAbstract" id="dsgx_OtherReceivablesDisclosureAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="GoodwillDisclosureAbstract" id="dsgx_GoodwillDisclosureAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="LesseeOperatingLeaseLiabilityToBePaidAfterYearFour" id="dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" />
  <xsd:element name="CommitmentsContingenciesAndGuaranteesDisclosureAbstract" id="dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="IncomeTaxDisclosureTable" id="dsgx_IncomeTaxDisclosureTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="IncomeTaxDisclosureLineItems" id="dsgx_IncomeTaxDisclosureLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="ExpensesAndRecoveriesNet" id="dsgx_ExpensesAndRecoveriesNet" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" />
  <xsd:element name="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" id="dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" abstract="false" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" />
  <xsd:element name="VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember" id="dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration" />
  <xsd:element name="CashSettledRestrictedShareUnitMember" id="dsgx_CashSettledRestrictedShareUnitMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="ShareholderApprovedStockOptionsPlanMember" id="dsgx_ShareholderApprovedStockOptionsPlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
  <xsd:element name="NcibMember" id="dsgx_NcibMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true" />
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>5
<FILENAME>dsgx-20220731_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--XBRL document created with Toppan Merrill Bridge  9.6.8167.22744 -->
<!--Based on XBRL 2.1-->
<!--Created on: 9/7/2022 8:26:53 PM-->
<!--Modified on: 9/7/2022 8:26:53 PM-->
<link: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:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink">
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedBalanceSheets" roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedStatementsOfOperations" roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedStatementsOfComprehensiveIncome" roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedStatementsOfCashFlows" roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureTradeAccountsReceivableTradeReceivablesDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherReceivablesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosurePropertyAndEquipmentDetails" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureIntangibleAssetsDetails" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAccruedLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherChargesComponentsOfOtherChargesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <calculationLink xlink:role="http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets" xlink:type="extended" xlink:title="00100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Assets" xlink:label="Assets" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent_637981792118325556" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_OtherAssetsNoncurrent_637981792118325556" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_637981792118325556" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_637981792118325556" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_637981792118325556" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_637981792118325556" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_637981792118325556" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_637981792118325556" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_637981792118325556" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_637981792118325556" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_637981792118325556" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_Goodwill_637981792118325556" order="6" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent_637981792118325556" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="us-gaap_AssetsCurrent_637981792118325556" order="7" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent_637981792118325556" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637981792118325556" xlink:to="us-gaap_AccountsReceivableNetCurrent_637981792118325556" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent_637981792118325556" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637981792118325556" xlink:to="us-gaap_OtherReceivablesNetCurrent_637981792118325556" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_637981792118325556" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637981792118325556" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_637981792118325556" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet_637981792118335558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637981792118325556" xlink:to="us-gaap_InventoryNet_637981792118335558" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_637981792118335558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent_637981792118325556" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_637981792118335558" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="LiabilitiesAndStockholdersEquity" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities_637981792118335558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities_637981792118335558" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent_637981792118335558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637981792118335558" xlink:to="us-gaap_LiabilitiesCurrent_637981792118335558" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent_637981792118335558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637981792118335558" xlink:to="us-gaap_AccountsPayableCurrent_637981792118335558" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent_637981792118335558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637981792118335558" xlink:to="us-gaap_AccruedLiabilitiesCurrent_637981792118335558" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_637981792118335558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637981792118335558" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_637981792118335558" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent_637981792118335558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637981792118335558" xlink:to="us-gaap_AccruedIncomeTaxesCurrent_637981792118335558" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="us-gaap_DeferredRevenueCurrent_637981792118345558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent_637981792118335558" xlink:to="us-gaap_DeferredRevenueCurrent_637981792118345558" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent_637981792118345558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637981792118335558" xlink:to="us-gaap_LongTermDebtNoncurrent_637981792118345558" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_637981792118345558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637981792118335558" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_637981792118345558" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredRevenueNoncurrent" xlink:label="us-gaap_DeferredRevenueNoncurrent_637981792118345558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637981792118335558" xlink:to="us-gaap_DeferredRevenueNoncurrent_637981792118345558" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedIncomeTaxesNoncurrent" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent_637981792118345558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637981792118335558" xlink:to="us-gaap_AccruedIncomeTaxesNoncurrent_637981792118345558" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_637981792118345558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities_637981792118335558" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_637981792118345558" order="6" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies_637981792118345558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_CommitmentsAndContingencies_637981792118345558" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_637981792118345558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquity_637981792118345558" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue_637981792118355562" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_637981792118345558" xlink:to="us-gaap_CommonStockValue_637981792118355562" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_637981792118355562" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_637981792118345558" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_637981792118355562" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_637981792118355562" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_637981792118345558" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_637981792118355562" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_637981792118355562" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity_637981792118345558" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_637981792118355562" order="4" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations" xlink:type="extended" xlink:title="00200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637981792118355562" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="GrossProfit" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637981792118355562" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold_637981792118355562" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="GrossProfit" xlink:to="us-gaap_CostOfGoodsAndServicesSold_637981792118355562" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_637981792118355562" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit_637981792118355562" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_637981792118365561" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit_637981792118355562" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_637981792118365561" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_637981792118365561" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit_637981792118355562" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_637981792118365561" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637981792118365561" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637981792118365561" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense_637981792118365561" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637981792118365561" xlink:to="us-gaap_InterestExpense_637981792118365561" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss_637981792118365561" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637981792118365561" xlink:to="us-gaap_OperatingIncomeLoss_637981792118365561" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InvestmentIncomeNet" xlink:label="us-gaap_InvestmentIncomeNet_637981792118365561" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637981792118365561" xlink:to="us-gaap_InvestmentIncomeNet_637981792118365561" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingExpenses" xlink:label="OperatingExpenses" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense_637981792118365561" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="us-gaap_ResearchAndDevelopmentExpense_637981792118365561" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense_637981792118365561" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="us-gaap_GeneralAndAdministrativeExpense_637981792118365561" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense_637981792118365561" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="us-gaap_SellingAndMarketingExpense_637981792118365561" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_637981792118375558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="us-gaap_AmortizationOfIntangibleAssets_637981792118375558" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherCostAndExpenseOperating" xlink:label="us-gaap_OtherCostAndExpenseOperating_637981792118375558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="us-gaap_OtherCostAndExpenseOperating_637981792118375558" order="5" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" xlink:type="extended" xlink:title="00300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="ComprehensiveIncomeNetOfTax" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax_637981792118375558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTax_637981792118375558" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_637981792118375558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTax_637981792118375558" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_637981792118375558" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_637981792118375558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_NetIncomeLoss_637981792118375558" order="2" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" xlink:type="extended" xlink:title="00500 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_637981792118375558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_637981792118375558" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_637981792118375558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_637981792118375558" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637981792118375558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_637981792118375558" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637981792118375558" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_637981792118385560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities_637981792118375558" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_637981792118385560" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_637981792118385560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_637981792118385560" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit_637981792118385560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637981792118385560" xlink:to="us-gaap_ProceedsFromLinesOfCredit_637981792118385560" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RepaymentsOfDebt" xlink:label="us-gaap_RepaymentsOfDebt_637981792118385560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637981792118385560" xlink:to="us-gaap_RepaymentsOfDebt_637981792118385560" order="2" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_637981792118385560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637981792118385560" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_637981792118385560" order="3" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock_637981792118385560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637981792118385560" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock_637981792118385560" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts_637981792118385560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities_637981792118385560" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts_637981792118385560" order="5" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_637981792118385560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_637981792118385560" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital_637981792118385560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637981792118385560" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital_637981792118385560" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_637981792118385560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637981792118385560" xlink:to="us-gaap_AmortizationOfIntangibleAssets_637981792118385560" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_637981792118385560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637981792118385560" xlink:to="us-gaap_NetIncomeLoss_637981792118385560" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation_637981792118395558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637981792118385560" xlink:to="us-gaap_Depreciation_637981792118395558" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredTaxCharges" xlink:label="dsgx_DeferredTaxCharges_637981792118395558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637981792118385560" xlink:to="dsgx_DeferredTaxCharges_637981792118395558" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense_637981792118395558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637981792118385560" xlink:to="us-gaap_OtherNoncashIncomeExpense_637981792118395558" order="6" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_637981792118395558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637981792118385560" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_637981792118395558" order="7" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation_637981792118395558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities_637981792118385560" xlink:to="us-gaap_ShareBasedCompensation_637981792118395558" order="8" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails" xlink:type="extended" xlink:title="40501 - Disclosure - Trade Accounts Receivable - Trade Receivables (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637981792118395558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637981792118395558" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent_637981792118395558" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent_637981792118395558" order="2" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureOtherReceivablesDetails" xlink:type="extended" xlink:title="40601 - Disclosure - Other Receivables (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent_637981792118405560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherReceivablesNetCurrent" xlink:to="us-gaap_OtherAssetsCurrent_637981792118405560" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions_637981792118405560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherReceivablesNetCurrent" xlink:to="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions_637981792118405560" order="2" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" xlink:type="extended" xlink:title="40801 - Disclosure - Property and Equipment (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_637981792118405560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_637981792118405560" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_637981792118405560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_637981792118405560" order="2" use="optional" weight="-1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xlink:type="extended" xlink:title="40901 - Disclosure - Intangible Assets (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="FiniteLivedIntangibleAssetsNet" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_637981792118405560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_637981792118405560" order="1" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_637981792118405560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_637981792118405560" order="2" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" xlink:type="extended" xlink:title="41101 - Disclosure - Accrued Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_637981792118405560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_637981792118405560" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent_637981792118415560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedProfessionalFeesCurrent_637981792118415560" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_637981792118415560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent_637981792118415560" order="3" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" xlink:type="extended" xlink:title="41302 - Disclosure - Leases - Components of Operating Lease Expense (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeaseCost" xlink:label="LeaseCost" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost_637981792118415560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LeaseCost" xlink:to="us-gaap_OperatingLeaseCost_637981792118415560" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost_637981792118415560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LeaseCost" xlink:to="us-gaap_ShortTermLeaseCost_637981792118415560" order="2" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" xlink:type="extended" xlink:title="41303 - Disclosure - Leases - Maturities of Operating Lease Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDue" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour" xlink:label="dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour_637981792118415560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour_637981792118415560" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_637981792118415560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_637981792118415560" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_637981792118415560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_637981792118415560" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_637981792118415560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_637981792118415560" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_637981792118415560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_637981792118415560" order="5" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear_637981792118425560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear_637981792118425560" order="6" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" xlink:type="extended" xlink:title="42001 - Disclosure - Other Charges - Components of Other Charges (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherCostAndExpenseOperating" xlink:label="us-gaap_OtherCostAndExpenseOperating" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges_637981792118425560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherCostAndExpenseOperating" xlink:to="us-gaap_RestructuringCharges_637981792118425560" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637981792118425560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherCostAndExpenseOperating" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637981792118425560" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_637981792118425560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherCostAndExpenseOperating" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts_637981792118425560" order="3" use="optional" weight="1" />
  </calculationLink>
  <calculationLink xlink:role="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" xlink:type="extended" xlink:title="42101 - Disclosure - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_637981792118425560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_637981792118425560" order="1" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_637981792118425560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables_637981792118425560" order="2" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_637981792118425560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_637981792118425560" order="3" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories_637981792118425560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInInventories_637981792118425560" order="4" use="optional" weight="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_637981792118425560" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_637981792118425560" order="5" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities_637981792118435559" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities_637981792118435559" order="6" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes_637981792118435559" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxes_637981792118435559" order="7" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_637981792118435559" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_637981792118435559" order="8" use="optional" weight="-1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_637981792118435559" />
    <calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue_637981792118435559" order="9" use="optional" weight="-1" />
  </calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>6
<FILENAME>dsgx-20220731_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--XBRL document created with Toppan Merrill Bridge  9.6.8167.22744 -->
<!--Based on XBRL 2.1-->
<!--Created on: 9/7/2022 8:26:53 PM-->
<!--Modified on: 9/7/2022 8:26:53 PM-->
<link: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:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrldt="http://xbrl.org/2005/xbrldt">
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedStatementsOfShareholdersEquity" roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAcquisitionsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureFairValueMeasurementsDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosurePropertyAndEquipmentDetails" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureIntangibleAssetsDetails" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureGoodwillDetails" roleURI="http://www.descartes.com/role/DisclosureGoodwillDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureLongTermDebtDetails" roleURI="http://www.descartes.com/role/DisclosureLongTermDebtDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureLeasesDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureCommitmentsContingenciesAndGuaranteesDetails" roleURI="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureShareCapitalDetails" roleURI="http://www.descartes.com/role/DisclosureShareCapitalDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureEarningsPerShareDetails" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureIncomeTaxesAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsDefaultDetailss" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDefaultDetailss" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureShareCapital" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureShareCapital" />
  <link:roleRef roleURI="http://www.descartes.com/role/DocumentDocumentAndEntityInformation" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DocumentDocumentAndEntityInformation" />
  <link:roleRef roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets" xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedBalanceSheets" />
  <link:roleRef roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedBalanceSheetsParentheticals" />
  <link:roleRef roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations" xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedStatementsOfOperations" />
  <link:roleRef roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedStatementsOfComprehensiveIncome" />
  <link:roleRef roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeParentheticals" xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedStatementsOfComprehensiveIncomeParentheticals" />
  <link:roleRef roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedStatementsOfCashFlows" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureDescriptionOfBusiness" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureDescriptionOfBusiness" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentation" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureBasisOfPresentation" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureAcquisitions" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAcquisitions" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurements" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureFairValueMeasurements" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivable" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureTradeAccountsReceivable" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureOtherReceivables" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherReceivables" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureInventory" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureInventory" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipment" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosurePropertyAndEquipment" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureIntangibleAssets" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureIntangibleAssets" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureGoodwill" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureGoodwill" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilities" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAccruedLiabilities" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureLongTermDebt" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureLongTermDebt" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureLeases" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureLeases" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCosts" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureOtherCharges" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherCharges" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSupplementalCashFlowInformation" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureSegmentedInformation" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSegmentedInformation" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureBasisOfPresentationPolicies" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureAcquisitionsTables" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAcquisitionsTables" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsTables" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureFairValueMeasurementsTables" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureTradeAccountsReceivableTables" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesTables" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherReceivablesTables" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosurePropertyAndEquipmentTables" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsTables" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureIntangibleAssetsTables" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureGoodwillTables" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureGoodwillTables" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAccruedLiabilitiesTables" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureOtherChargesTables" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherChargesTables" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSupplementalCashFlowInformationTables" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationTables" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSegmentedInformationTables" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureIntangibleAssetsAdditionalInformationDetails" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherChargesComponentsOfOtherChargesDetails" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSegmentedInformationAdditionalInformationDetails" />
  <link:roleRef roleURI="http://www.descartes.com/role/DisclosureStandardAndCustomAxisDomainDefaults" xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStandardAndCustomAxisDomainDefaults" />
  <link:arcroleRef arcroleURI="http://www.esma.europa.eu/xbrl/esef/arcrole/wider-narrower" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd#wider-narrower" />
  <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/domain-member" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" />
  <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/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:definitionLink xlink:type="extended" xlink:role="http://www.descartes.com/role/DisclosureStandardAndCustomAxisDomainDefaults">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="CumulativeEffectPeriodOfAdoptionAxis" xlink:title="CumulativeEffectPeriodOfAdoptionAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="CumulativeEffectPeriodOfAdoptionDomain" xlink:title="CumulativeEffectPeriodOfAdoptionDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="CumulativeEffectPeriodOfAdoptionAxis" xlink:to="CumulativeEffectPeriodOfAdoptionDomain" xlink:title="definition: CumulativeEffectPeriodOfAdoptionAxis to CumulativeEffectPeriodOfAdoptionDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="StatementClassOfStockAxis" xlink:title="StatementClassOfStockAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain" xlink:title="ClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain" xlink:title="definition: StatementClassOfStockAxis to ClassOfStockDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressesAddressTypeAxis" xlink:label="EntityAddressesAddressTypeAxis" xlink:title="EntityAddressesAddressTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AddressTypeDomain" xlink:label="AddressTypeDomain" xlink:title="AddressTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="EntityAddressesAddressTypeAxis" xlink:to="AddressTypeDomain" xlink:title="definition: EntityAddressesAddressTypeAxis to AddressTypeDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="SubsidiarySaleOfStockAxis" xlink:title="SubsidiarySaleOfStockAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="SaleOfStockNameOfTransactionDomain" xlink:title="SaleOfStockNameOfTransactionDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="SubsidiarySaleOfStockAxis" xlink:to="SaleOfStockNameOfTransactionDomain" xlink:title="definition: SubsidiarySaleOfStockAxis to SaleOfStockNameOfTransactionDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="LegalEntityAxis" xlink:title="LegalEntityAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="EntityDomain" xlink:title="EntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="LegalEntityAxis" xlink:to="EntityDomain" xlink:title="definition: LegalEntityAxis to EntityDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="SubsequentEventTypeAxis" xlink:title="SubsequentEventTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="SubsequentEventTypeDomain" xlink:title="SubsequentEventTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="SubsequentEventTypeAxis" xlink:to="SubsequentEventTypeDomain" xlink:title="definition: SubsequentEventTypeAxis to SubsequentEventTypeDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="BusinessAcquisitionAxis" xlink:title="BusinessAcquisitionAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="BusinessAcquisitionAcquireeDomain" xlink:title="BusinessAcquisitionAcquireeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="BusinessAcquisitionAxis" xlink:to="BusinessAcquisitionAcquireeDomain" xlink:title="definition: BusinessAcquisitionAxis to BusinessAcquisitionAcquireeDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="definition: FiniteLivedIntangibleAssetsByMajorClassAxis to FiniteLivedIntangibleAssetsMajorClassNameDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="TitleOfIndividualAxis" xlink:title="TitleOfIndividualAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="TitleOfIndividualWithRelationshipToEntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="TitleOfIndividualAxis" xlink:to="TitleOfIndividualWithRelationshipToEntityDomain" xlink:title="definition: TitleOfIndividualAxis to TitleOfIndividualWithRelationshipToEntityDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="AdjustmentsForNewAccountingPronouncementsAxis" xlink:title="AdjustmentsForNewAccountingPronouncementsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="TypeOfAdoptionMember" xlink:title="TypeOfAdoptionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="TypeOfAdoptionMember" xlink:title="definition: AdjustmentsForNewAccountingPronouncementsAxis to TypeOfAdoptionMember" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="IncomeStatementLocationAxis" xlink:title="IncomeStatementLocationAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="IncomeStatementLocationDomain" xlink:title="IncomeStatementLocationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="IncomeStatementLocationAxis" xlink:to="IncomeStatementLocationDomain" xlink:title="definition: IncomeStatementLocationAxis to IncomeStatementLocationDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="MeasurementInputTypeAxis" xlink:title="MeasurementInputTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="MeasurementInputTypeDomain" xlink:title="MeasurementInputTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="MeasurementInputTypeAxis" xlink:to="MeasurementInputTypeDomain" xlink:title="definition: MeasurementInputTypeAxis to MeasurementInputTypeDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:label="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:title="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:label="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:title="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:title="definition: ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis to ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="IncomeTaxAuthorityAxis" xlink:title="IncomeTaxAuthorityAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="IncomeTaxAuthorityDomain" xlink:title="IncomeTaxAuthorityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="IncomeTaxAuthorityAxis" xlink:to="IncomeTaxAuthorityDomain" xlink:title="definition: IncomeTaxAuthorityAxis to IncomeTaxAuthorityDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementScenarioAxis" xlink:label="StatementScenarioAxis" xlink:title="StatementScenarioAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ScenarioUnspecifiedDomain" xlink:label="ScenarioUnspecifiedDomain" xlink:title="ScenarioUnspecifiedDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementScenarioAxis" xlink:to="ScenarioUnspecifiedDomain" xlink:title="definition: StatementScenarioAxis to ScenarioUnspecifiedDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="IncomeTaxAuthorityNameAxis" xlink:title="IncomeTaxAuthorityNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="IncomeTaxAuthorityNameDomain" xlink:title="IncomeTaxAuthorityNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="IncomeTaxAuthorityNameAxis" xlink:to="IncomeTaxAuthorityNameDomain" xlink:title="definition: IncomeTaxAuthorityNameAxis to IncomeTaxAuthorityNameDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxPeriodAxis" xlink:label="TaxPeriodAxis" xlink:title="TaxPeriodAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TaxPeriodDomain" xlink:label="TaxPeriodDomain" xlink:title="TaxPeriodDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="TaxPeriodAxis" xlink:to="TaxPeriodDomain" xlink:title="definition: TaxPeriodAxis to TaxPeriodDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="RestructuringCostAndReserveAxis" xlink:title="RestructuringCostAndReserveAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="TypeOfRestructuringDomain" xlink:title="TypeOfRestructuringDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RestructuringCostAndReserveAxis" xlink:to="TypeOfRestructuringDomain" xlink:title="definition: RestructuringCostAndReserveAxis to TypeOfRestructuringDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestructuringPlanAxis" xlink:label="RestructuringPlanAxis" xlink:title="RestructuringPlanAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestructuringPlanDomain" xlink:label="RestructuringPlanDomain" xlink:title="RestructuringPlanDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RestructuringPlanAxis" xlink:to="RestructuringPlanDomain" xlink:title="definition: RestructuringPlanAxis to RestructuringPlanDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="StatementEquityComponentsAxis" xlink:title="StatementEquityComponentsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain" xlink:title="EquityComponentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain" xlink:title="definition: StatementEquityComponentsAxis to EquityComponentDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="HedgingDesignationAxis" xlink:title="HedgingDesignationAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="HedgingDesignationDomain" xlink:title="HedgingDesignationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="HedgingDesignationAxis" xlink:to="HedgingDesignationDomain" xlink:title="definition: HedgingDesignationAxis to HedgingDesignationDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="FairValueByFairValueHierarchyLevelAxis" xlink:title="FairValueByFairValueHierarchyLevelAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="FairValueMeasurementsFairValueHierarchyDomain" xlink:title="FairValueMeasurementsFairValueHierarchyDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="FairValueByFairValueHierarchyLevelAxis" xlink:to="FairValueMeasurementsFairValueHierarchyDomain" xlink:title="definition: FairValueByFairValueHierarchyLevelAxis to FairValueMeasurementsFairValueHierarchyDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="CreditFacilityAxis" xlink:title="CreditFacilityAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="CreditFacilityDomain" xlink:title="CreditFacilityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="CreditFacilityAxis" xlink:to="CreditFacilityDomain" xlink:title="definition: CreditFacilityAxis to CreditFacilityDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="DebtInstrumentAxis" xlink:title="DebtInstrumentAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="DebtInstrumentNameDomain" xlink:title="DebtInstrumentNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="DebtInstrumentAxis" xlink:to="DebtInstrumentNameDomain" xlink:title="definition: DebtInstrumentAxis to DebtInstrumentNameDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="VariableRateAxis" xlink:title="VariableRateAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="VariableRateDomain" xlink:title="VariableRateDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="VariableRateAxis" xlink:to="VariableRateDomain" xlink:title="definition: VariableRateAxis to VariableRateDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="ProductOrServiceAxis" xlink:title="ProductOrServiceAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="ProductsAndServicesDomain" xlink:title="ProductsAndServicesDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ProductOrServiceAxis" xlink:to="ProductsAndServicesDomain" xlink:title="definition: ProductOrServiceAxis to ProductsAndServicesDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="AntidilutiveSecuritiesNameDomain" xlink:title="AntidilutiveSecuritiesNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="AntidilutiveSecuritiesNameDomain" xlink:title="definition: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis to AntidilutiveSecuritiesNameDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="definition: PlanNameAxis to PlanNameDomain" use="optional" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="AdjustmentsForChangeInAccountingPrincipleAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember" xlink:title="definition: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember" use="optional" order="1" />
  </link:definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity" xlink:type="extended" xlink:title="00400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AdditionalPaidInCapitalMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsDetails" xlink:type="extended" xlink:title="40301 - Disclosure - Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_QuestawebMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PortrixMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_GreenmileMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2021AcquisitionsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_Acquisitions2022Member" xlink:label="dsgx_Acquisitions2022Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_Acquisitions2022Member" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VelocityMailMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PinPointMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_Fiscal2023AcquisitionsMember" xlink:label="dsgx_Fiscal2023AcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_Fiscal2023AcquisitionsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_NetChbLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_FoxtrotMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_XpsTechnologyLlcMember" xlink:label="dsgx_XpsTechnologyLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_XpsTechnologyLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" xlink:type="extended" xlink:title="40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_NetChbLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_FoxtrotMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_XpsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2021AcquisitionsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2020AcquisitionsMember" xlink:label="dsgx_The2020AcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2020AcquisitionsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VelocityMailMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PinPointMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2019AcquisitionsMember" xlink:label="dsgx_The2019AcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2019AcquisitionsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2022AcquisitionsMember" xlink:label="dsgx_The2022AcquisitionsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2022AcquisitionsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="dsgx_ExistingTechnologyMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="dei_LegalEntityAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:label="dsgx_BusinessCombinationConsiderationTransferredPayable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="dsgx_BusinessCombinationConsiderationTransferredPayable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="18" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="19" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="20" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" xlink:type="extended" xlink:title="40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VelocityMailMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PinPointMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_NetChbLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_FoxtrotMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_XpsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="dei_LegalEntityAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_CashAcquiredFromAcquisition" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" xlink:type="extended" xlink:title="40304 - Disclosure - Acquisitions - Acquired Intangible Assets Useful Lives (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="dsgx_ExistingTechnologyMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VelocityMailMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PinPointMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_NetChbLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_FoxtrotMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_XpsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="dei_LegalEntityAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" xlink:type="extended" xlink:title="40401 - Disclosure - Fair Value Measurements (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="us-gaap_MeasurementInputTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_MeasurementInputTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="us-gaap_MeasurementInputTypeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_MeasurementInputTypeAxis" xlink:to="us-gaap_MeasurementInputTypeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" xlink:label="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_MeasurementInputTypeDomain" xlink:to="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputDiscountRateMember" xlink:label="us-gaap_MeasurementInputDiscountRateMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_MeasurementInputTypeDomain" xlink:to="us-gaap_MeasurementInputDiscountRateMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DerivativeGainOnDerivatives" xlink:label="dsgx_DerivativeGainOnDerivatives" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DerivativeGainOnDerivatives" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ExpensesAndRecoveriesNet" xlink:label="dsgx_ExpensesAndRecoveriesNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ExpensesAndRecoveriesNet" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" xlink:type="extended" xlink:title="40402 - Disclosure - Fair Value Measurements - Derivative Instruments at Fair Value (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:to="us-gaap_HedgingDesignationAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_HedgingDesignationDomain" xlink:to="us-gaap_DesignatedAsHedgingInstrumentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="us-gaap_NondesignatedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_HedgingDesignationDomain" xlink:to="us-gaap_NondesignatedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="us-gaap_FairValueInputsLevel1Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel1Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel2Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel3Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:to="us-gaap_DerivativeAssets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" xlink:type="extended" xlink:title="40403 - Disclosure - Fair Value Measurements - Changes in fair value measurements (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel3Member" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" xlink:label="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" xlink:type="extended" xlink:title="40801 - Disclosure - Property and Equipment (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_ComputerEquipmentMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_FurnitureAndFixturesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_LeaseholdImprovementsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_EquipmentInstalledWithCustomersMember" xlink:label="dsgx_EquipmentInstalledWithCustomersMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="dsgx_EquipmentInstalledWithCustomersMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetUnderConstructionMember" xlink:label="us-gaap_AssetUnderConstructionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_AssetUnderConstructionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xlink:type="extended" xlink:title="40901 - Disclosure - Intangible Assets (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_DevelopedTechnologyRightsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureGoodwillDetails" xlink:type="extended" xlink:title="41001 - Disclosure - Goodwill (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_QuestawebMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PortrixMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_GreenmileMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_NetChbLlcMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_FoxtrotMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_XpsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_ScheduleOfGoodwillTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_Goodwill" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureLongTermDebtDetails" xlink:type="extended" xlink:title="41201 - Disclosure - Long-term Debt (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_CreditFacilityAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_RevolvingOperatingCreditFacilityMember" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="dsgx_RevolvingOperatingCreditFacilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:label="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="dsgx_SeniorSecuredCreditFacilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" use="optional" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="dsgx_SeniorSecuredCreditFacilityMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="3" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="4" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_VariableRateAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_VariableRateDomain" xlink:to="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentTerm" xlink:label="us-gaap_DebtInstrumentTerm" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentTerm" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCredit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureLeasesDetails" xlink:type="extended" xlink:title="41301 - Disclosure - Leases (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeLeaseDescriptionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" xlink:type="extended" xlink:title="41401 - Disclosure - Commitments, Contingencies and Guarantees (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_LossContingenciesTable" xlink:to="us-gaap_BusinessAcquisitionAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember" xlink:label="dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesLineItems" xlink:label="us-gaap_LossContingenciesLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="us-gaap_LossContingenciesTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureShareCapitalDetails" xlink:type="extended" xlink:title="41501 - Disclosure - Share Capital (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfStockByClassTable" xlink:label="us-gaap_ScheduleOfStockByClassTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfStockByClassTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShelfProspectusMember" xlink:label="dsgx_ShelfProspectusMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="dsgx_ShelfProspectusMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2020BaseShelfProspectusMember" xlink:label="dsgx_The2020BaseShelfProspectusMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="dsgx_The2020BaseShelfProspectusMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NcibMember" xlink:label="dsgx_NcibMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="dsgx_NcibMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfStockLineItems" xlink:label="us-gaap_ClassOfStockLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_ScheduleOfStockByClassTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShelfProspectusPeriod" xlink:label="dsgx_ShelfProspectusPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="dsgx_ShelfProspectusPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShelfProspectusMaximumAmount" xlink:label="dsgx_ShelfProspectusMaximumAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="dsgx_ShelfProspectusMaximumAmount" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharesIssuedPricePerShare" xlink:label="us-gaap_SharesIssuedPricePerShare" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_SharesIssuedPricePerShare" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_ProceedsFromStockOptionsExercised" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xlink:label="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_MaximumPercentageOfSharesToBeRepurchased" xlink:label="dsgx_MaximumPercentageOfSharesToBeRepurchased" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="dsgx_MaximumPercentageOfSharesToBeRepurchased" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureEarningsPerShareDetails" xlink:type="extended" xlink:title="41601 - Disclosure - Earnings Per Share (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_StockOptionsTreasuryStockMethodMember" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="dsgx_StockOptionsTreasuryStockMethodMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="dsgx_PSUsAndRSUsMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasicLineItems" xlink:label="us-gaap_EarningsPerShareBasicLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" xlink:type="extended" xlink:title="41602 - Disclosure - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:to="us-gaap_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasicLineItems" xlink:label="us-gaap_EarningsPerShareBasicLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_NetIncomeLoss" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_EarningsPerShareBasic" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_EarningsPerShareDiluted" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" xlink:type="extended" xlink:title="41701 - Disclosure - Stock-Based Compensation Plans - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_PlanNameAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareholderApprovedStockOptionsPlanMember" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_ShareholderApprovedStockOptionsPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_DeferredShareUnitPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CashSettledRestrictedShareUnitMember" xlink:label="dsgx_CashSettledRestrictedShareUnitMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_CashSettledRestrictedShareUnitMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsOutstandingNumber" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_DeferredShareUnitsOutstandingNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsGrantsInPeriod" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_DeferredShareUnitsGrantsInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsCompensationExpense" xlink:label="dsgx_DeferredShareUnitsCompensationExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_DeferredShareUnitsCompensationExpense" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="18" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" xlink:type="extended" xlink:title="41702 - Disclosure - Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_IncomeStatementLocationAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_CostOfSalesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingAndMarketingExpenseMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" xlink:type="extended" xlink:title="41705 - Disclosure - Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="18" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="19" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="20" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="21" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" xlink:type="extended" xlink:title="41706 - Disclosure - Stock-Based Compensation Plans - Summary of Nonvested Share (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_PlanNameAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareholderApprovedStockOptionsPlanMember" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_ShareholderApprovedStockOptionsPlanMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" xlink:type="extended" xlink:title="41707 - Disclosure - Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="9" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="10" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="11" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="12" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="13" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="14" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="15" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="16" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="17" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" xlink:type="extended" xlink:title="41801 - Disclosure - Income Taxes - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_IncomeTaxDisclosureTable" xlink:label="dsgx_IncomeTaxDisclosureTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="dsgx_IncomeTaxDisclosureTable" xlink:to="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="us-gaap_ChangeInAccountingPrincipleMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="us-gaap_ChangeInAccountingPrincipleMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember" xlink:label="dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="us-gaap_ChangeInAccountingPrincipleMember" xlink:to="dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="2" xlink:from="dsgx_IncomeTaxDisclosureTable" xlink:to="srt_RangeAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_IncomeTaxDisclosureLineItems" xlink:label="dsgx_IncomeTaxDisclosureLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="dsgx_IncomeTaxDisclosureTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="5" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="us-gaap_UndistributedEarningsOfForeignSubsidiaries" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="6" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="7" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="8" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss" xlink:type="extended" xlink:title="41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDefaultDetailss" xlink:type="extended" xlink:title="41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs Default (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage" priority="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" xlink:type="extended" xlink:title="42201 - Disclosure - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="srt_StatementGeographicalAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2021/country-2021.xsd#country_US" xlink:label="country_US" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_US" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_SegmentGeographicalDomain" xlink:to="us-gaap_EMEAMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2021/country-2021.xsd#country_CA" xlink:label="country_CA" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_CA" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="srt_SegmentGeographicalDomain" xlink:to="srt_AsiaPacificMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" xlink:type="extended" xlink:title="42202 - Disclosure - Segmented Information - Segmented Revenue by Revenue Type (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="srt_ProductOrServiceAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ServiceMember" xlink:label="us-gaap_ServiceMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_ProductsAndServicesDomain" xlink:to="us-gaap_ServiceMember" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ProfessionalServicesAndOtherMember" xlink:label="dsgx_ProfessionalServicesAndOtherMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_ProductsAndServicesDomain" xlink:to="dsgx_ProfessionalServicesAndOtherMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LicenseMember" xlink:label="us-gaap_LicenseMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="srt_ProductsAndServicesDomain" xlink:to="us-gaap_LicenseMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" priority="1" use="optional" />
  </definitionLink>
  <definitionLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" xlink:type="extended" xlink:title="42203 - Disclosure - Segmented Information - Long-lived Assets by Geographical Location (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" order="1" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="srt_StatementGeographicalAxis" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" order="1" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2021/country-2021.xsd#country_US" xlink:label="country_US" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="1" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_US" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="srt_SegmentGeographicalDomain" xlink:to="us-gaap_EMEAMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2021/country-2021.xsd#country_CA" xlink:label="country_CA" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="3" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_CA" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="4" xlink:from="srt_SegmentGeographicalDomain" xlink:to="srt_AsiaPacificMember" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" order="1" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" use="optional" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NoncurrentAssets" xlink:label="us-gaap_NoncurrentAssets" />
    <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" order="2" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_NoncurrentAssets" priority="1" use="optional" />
  </definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>7
<FILENAME>dsgx-20220731_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--XBRL document created with Toppan Merrill Bridge  9.6.8167.22744 -->
<!--Based on XBRL 2.1-->
<!--Created on: 9/7/2022 8:26:53 PM-->
<!--Modified on: 9/7/2022 8:26:53 PM-->
<link: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:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrldt="http://xbrl.org/2005/xbrldt">
  <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" xmlns="http://www.xbrl.org/2003/linkbase" />
  <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" xmlns="http://www.xbrl.org/2003/linkbase" />
  <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" xmlns="http://www.xbrl.org/2003/linkbase" />
  <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" xmlns="http://www.xbrl.org/2003/linkbase" />
  <link:labelLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link">
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationTable" xlink:to="dei_DocumentInformationTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentInformationTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Information [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LegalEntityAxis" xlink:to="dei_LegalEntityAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_LegalEntityAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Legal Entity [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityDomain" xlink:to="dei_EntityDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="us-gaap_StatementClassOfStockAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementClassOfStockAxis" xlink:to="us-gaap_StatementClassOfStockAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementClassOfStockAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Class of Stock [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfStockDomain" xlink:label="us-gaap_ClassOfStockDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfStockDomain" xlink:to="us-gaap_ClassOfStockDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ClassOfStockDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Class of Stock [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common shares</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_RightsToPurchaseCommonSharesMember" xlink:label="dsgx_RightsToPurchaseCommonSharesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_RightsToPurchaseCommonSharesMember" xlink:to="dsgx_RightsToPurchaseCommonSharesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_RightsToPurchaseCommonSharesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the member pertaining to rights to purchase common shares.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_RightsToPurchaseCommonSharesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Rights to purchase Common Shares [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressesAddressTypeAxis" xlink:label="dei_EntityAddressesAddressTypeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressesAddressTypeAxis" xlink:to="dei_EntityAddressesAddressTypeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressesAddressTypeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Addresses, Address Type [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AddressTypeDomain" xlink:label="dei_AddressTypeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AddressTypeDomain" xlink:to="dei_AddressTypeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AddressTypeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Address Type [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_BusinessContactMember" xlink:label="dei_BusinessContactMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_BusinessContactMember" xlink:to="dei_BusinessContactMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_BusinessContactMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Contact [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentInformationLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentInformationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Information [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentType_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Type</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentRegistrationStatement" xlink:label="dei_DocumentRegistrationStatement" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentRegistrationStatement" xlink:to="dei_DocumentRegistrationStatement_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentRegistrationStatement_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Registration Statement</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentAnnualReport" xlink:label="dei_DocumentAnnualReport" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentAnnualReport" xlink:to="dei_DocumentAnnualReport_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentAnnualReport_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Annual Report</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentPeriodEndDate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Period End Date</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFileNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity File Number</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityRegistrantName_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Registrant Name</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Incorporation, State or Country Code</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_ContactPersonnelName" xlink:label="dei_ContactPersonnelName" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_ContactPersonnelName" xlink:to="dei_ContactPersonnelName_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_ContactPersonnelName_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contact Personnel Name</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Address, Address Line One</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine2" xlink:to="dei_EntityAddressAddressLine2_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine2_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Address, Address Line Two</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressAddressLine3" xlink:label="dei_EntityAddressAddressLine3" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine3" xlink:to="dei_EntityAddressAddressLine3_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine3_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Address, Address Line Three</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressCityOrTown_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Address, City or Town</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressStateOrProvince_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Address, State or Province</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressCountry" xlink:label="dei_EntityAddressCountry" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCountry" xlink:to="dei_EntityAddressCountry_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressCountry_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Address, Country</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressPostalZipCode_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Address, Postal Zip Code</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CityAreaCode_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">City Area Code</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_LocalPhoneNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Local Phone Number</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_Security12bTitle_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Title of 12(b) Security</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_TradingSymbol_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trading Symbol</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_SecurityExchangeName_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Security Exchange Name</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AnnualInformationForm" xlink:label="dei_AnnualInformationForm" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AnnualInformationForm" xlink:to="dei_AnnualInformationForm_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AnnualInformationForm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Annual Information Form</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditedAnnualFinancialStatements" xlink:label="dei_AuditedAnnualFinancialStatements" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AuditedAnnualFinancialStatements" xlink:to="dei_AuditedAnnualFinancialStatements_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AuditedAnnualFinancialStatements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Audited Annual Financial Statements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Common Stock, Shares Outstanding (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCurrentReportingStatus_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Current Reporting Status</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Interactive Data Current</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Emerging Growth Company</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorName" xlink:label="dei_AuditorName" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AuditorName" xlink:to="dei_AuditorName_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AuditorName_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Auditor Name</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorFirmId" xlink:label="dei_AuditorFirmId" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AuditorFirmId" xlink:to="dei_AuditorFirmId_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AuditorFirmId_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Auditor Firm ID</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorLocation" xlink:label="dei_AuditorLocation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AuditorLocation" xlink:to="dei_AuditorLocation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AuditorLocation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Auditor Location</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCentralIndexKey_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Central Index Key</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current Fiscal Year End Date</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalYearFocus_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Fiscal Year Focus</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Document Fiscal Period Focus</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AmendmentFlag_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amendment Flag</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFilerCategory_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Filer Category</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityVoluntaryFilers" xlink:to="dei_EntityVoluntaryFilers_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityVoluntaryFilers_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Voluntary Filers</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityWellKnownSeasonedIssuer" xlink:to="dei_EntityWellKnownSeasonedIssuer_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityWellKnownSeasonedIssuer_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Well-known Seasoned Issuer</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntitySmallBusiness_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Small Business</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityShellCompany_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Entity Shell Company</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CONDENSED CONSOLIDATED BALANCE SHEETS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Assets [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AssetsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">ASSETS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CURRENT ASSETS</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CURRENT ASSETS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableNetAbstract" xlink:label="us-gaap_AccountsReceivableNetAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_AccountsReceivableNetAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableNetAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts receivable (net)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccountsReceivableNetAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts receivable (net)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade (Note 5)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, after Allowance for Credit Loss, Current, Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherReceivablesNetCurrent" xlink:to="us-gaap_OtherReceivablesNetCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherReceivablesNetCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other (Note 6)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OtherReceivablesNetCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Receivables, Net, Current, Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid expenses and other</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventory (Note 7)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Assets, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_AssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">ASSETS, CURRENT, TOTAL</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">OTHER LONG-TERM ASSETS (Note 19)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">PROPERTY AND EQUIPMENT, NET (Note 8)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">RIGHT-OF-USE ASSETS (Note 13)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxAssetsNet" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Income Tax Assets, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">DEFERRED INCOME TAXES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INTANGIBLE ASSETS, NET (Note 9)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Goodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">GOODWILL (Note 10)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_Goodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_Goodwill_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Assets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Assets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">ASSETS, TOTAL</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities and Equity [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">LIABILITIES AND SHAREHOLDERS' EQUITY</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CURRENT LIABILITIES</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CURRENT LIABILITIES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts payable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued liabilities (Note 11)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_AccruedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued Liabilities, Current, Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lease obligations (Note 13)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedIncomeTaxesCurrent" xlink:to="us-gaap_AccruedIncomeTaxesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedIncomeTaxesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income taxes payable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="us-gaap_DeferredRevenueCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueCurrent" xlink:to="us-gaap_DeferredRevenueCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredRevenueCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Revenue, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredRevenueCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred revenue (Note 19)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredRevenueCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">LIABILITIES, CURRENT, TOTAL</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtNoncurrent" xlink:to="us-gaap_LongTermDebtNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermDebtNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">LONG-TERM DEBT (Note 12)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Lease, Liability, Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">LEASE OBLIGATIONS (Note 13)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredRevenueNoncurrent" xlink:label="us-gaap_DeferredRevenueNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueNoncurrent" xlink:to="us-gaap_DeferredRevenueNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredRevenueNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Revenue, Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredRevenueNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">DEFERRED REVENUE (Note 19)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedIncomeTaxesNoncurrent" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedIncomeTaxesNoncurrent" xlink:to="us-gaap_AccruedIncomeTaxesNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued Income Taxes, Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INCOME TAXES PAYABLE</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">DEFERRED INCOME TAXES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Liabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Liabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">LIABILITIES, TOTAL</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">COMMITMENTS, CONTINGENCIES AND GUARANTEES (Note 14)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">SHAREHOLDERS' EQUITY (Note 15)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">SHAREHOLDERS' EQUITY (Note 15)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common shares - unlimited shares authorized; Shares issued and outstanding totaled 84,756,210 at January 31, 2022 (January 31, 2021 - 84,494,658)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommonStockValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common shares - unlimited shares authorized; Shares issued and outstanding totaled 84,788,547 at July 31, 2022 (January 31, 2022 - 84,756,210)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additional paid-in capital</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated other comprehensive income (loss)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retained Earnings</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retained earnings</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stockholders' Equity Attributable to Parent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_StockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance, end of period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_StockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance, beginning of period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_StockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stockholders' Equity Attributable to Parent, Ending Balance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liabilities and Equity</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">LIABILITIES AND SHAREHOLDERS' EQUITY, TOTAL</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesAuthorizedUnlimited" xlink:label="us-gaap_CommonStockSharesAuthorizedUnlimited" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesAuthorizedUnlimited" xlink:to="us-gaap_CommonStockSharesAuthorizedUnlimited_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesAuthorizedUnlimited_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common Stock, Shares Authorized, Unlimited</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common shares, shares issued (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common shares, shares outstanding (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">REVENUES</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Geographical revenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenues</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfGoodsAndServicesSold" xlink:to="us-gaap_CostOfGoodsAndServicesSold_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">COST OF REVENUES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GrossProfit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gross Profit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_GrossProfit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">GROSS MARGIN</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostsAndExpensesAbstract" xlink:label="us-gaap_CostsAndExpensesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_CostsAndExpensesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostsAndExpensesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">EXPENSES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingAndMarketingExpense" xlink:to="us-gaap_SellingAndMarketingExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Sales and marketing</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research and development expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research and development</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpense" xlink:to="us-gaap_GeneralAndAdministrativeExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">General and administrative expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">General and administrative</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherCostAndExpenseOperating" xlink:label="us-gaap_OtherCostAndExpenseOperating" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherCostAndExpenseOperating" xlink:to="us-gaap_OtherCostAndExpenseOperating_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherCostAndExpenseOperating_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Cost and Expense, Operating</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherCostAndExpenseOperating_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other charges (Note 20)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OtherCostAndExpenseOperating_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other non-operating expense, Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amortization of intangible assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingExpenses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Expenses</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingExpenses_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating Expenses, Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INCOME FROM OPERATIONS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Interest Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_InterestExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INTEREST EXPENSE</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InvestmentIncomeNet" xlink:label="us-gaap_InvestmentIncomeNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InvestmentIncomeNet" xlink:to="us-gaap_InvestmentIncomeNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InvestmentIncomeNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INVESTMENT INCOME</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INCOME BEFORE INCOME TAXES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INCOME TAX EXPENSE (RECOVERY) (Note 18)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current income tax expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred tax (recovery) expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Expense (Benefit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INCOME TAX EXPENSE (RECOVERY), Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net income</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Income</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">NET INCOME</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_NetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net income for purposes of calculating basic and diluted earnings per share</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earning Per Share (Basic)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earning Per Share (Diluted)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basic</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average shares outstanding (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Share Outstanding (Basic)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Diluted.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average common and common equivalent shares outstanding (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted Average Share Outstanding (Diluted)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other comprehensive income (loss):</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign currency translation adjustment, net of income tax (recovery) expense of $290 for the year ended January 31, 2021 (January 31, 2020 - ($132); January 31, 2019 - ($44))</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign currency translation adjustment, net of income tax expense (recovery) of ($88) and ($208) for the three and six month periods ended July 31, 2022 (($1) and ($186) for the same periods in fiscal 2022)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Comprehensive Income (Loss), Net of Tax</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total other comprehensive income (loss)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Comprehensive Income (Loss), Net of Tax, Attributable to Parent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">COMPREHENSIVE INCOME</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foreign currency translation adjustment, income tax expense (recovery)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statement [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity Components [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_EquityComponentDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EquityComponentDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity Component [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additional paid-in capital.</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated other comprehensive income (loss).</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Retained earnings (accumulated deficit)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statement [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock options and share units exercised</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-based compensation expense (Note 17)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other comprehensive income (loss), net of income taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">OPERATING ACTIVITIES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Adjustments to reconcile net income to cash provided by operating activities:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Depreciation" xlink:to="us-gaap_Depreciation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Depreciation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Depreciation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Noncash Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-based compensation expense (Note 17)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNoncashIncomeExpense" xlink:to="us-gaap_OtherNoncashIncomeExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherNoncashIncomeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Noncash Income (Expense)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_OtherNoncashIncomeExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other non-cash operating activities</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredTaxCharges" xlink:label="dsgx_DeferredTaxCharges" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredTaxCharges" xlink:to="dsgx_DeferredTaxCharges_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredTaxCharges_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the amount of deferred tax charges recorded during the period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredTaxCharges_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred tax charge</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Operating Capital</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Changes in operating assets and liabilities (Note 21)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Operating Capital, Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Operating Activities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash provided by operating activities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">INVESTING ACTIVITIES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments to Acquire Property, Plant, and Equipment</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Additions to property and equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash, net of cash acquired</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisition of subsidiaries, net of cash acquired (Note 3)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash, less cash acquired related to NetCHB ($658), Foxtrot (Nil) and XPS ($3,932)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash, net of cash acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Investing Activities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash used in investing activities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">FINANCING ACTIVITIES</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromLinesOfCredit" xlink:to="us-gaap_ProceedsFromLinesOfCredit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromLinesOfCredit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from borrowing on the credit facility</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RepaymentsOfDebt" xlink:label="us-gaap_RepaymentsOfDebt" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfDebt" xlink:to="us-gaap_RepaymentsOfDebt_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RepaymentsOfDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Repayments of Debt</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_RepaymentsOfDebt_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Credit facility and other debt repayments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payments of Debt Issuance Costs</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payment of debt issuance costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Issuance of common shares for cash, net of issuance costs (Note 15)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Payment of contingent consideration</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net Cash Provided by (Used in) Financing Activities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash (used in) provided by financing activities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of foreign exchange rate changes on cash</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Decrease in cash</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash, end of period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash, beginning of period</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supplemental disclosure of cash flow information:</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestPaidNet" xlink:to="us-gaap_InterestPaidNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestPaidNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash paid during the period for interest</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesPaidNet" xlink:to="us-gaap_IncomeTaxesPaidNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash paid during the period for income taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Description of the Business</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Description and Basis of Presentation [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Description of the Business</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountingPoliciesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basis of Presentation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Significant Accounting Policies [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basis of Presentation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisitions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisitions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueDisclosuresAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Measurements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresTextBlock" xlink:to="us-gaap_FairValueDisclosuresTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueDisclosuresTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Disclosures [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueDisclosuresTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Measurements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReceivablesAbstract" xlink:label="us-gaap_ReceivablesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesAbstract" xlink:to="us-gaap_ReceivablesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ReceivablesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade Accounts Receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:to="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loans, Notes, Trade and Other Receivables Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade Accounts Receivable</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_OtherReceivablesDisclosureAbstract" xlink:label="dsgx_OtherReceivablesDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OtherReceivablesDisclosureAbstract" xlink:to="dsgx_OtherReceivablesDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_OtherReceivablesDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Receivables Disclosure Abstract.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_OtherReceivablesDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Receivables.</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_OtherReceivablesTextBlock" xlink:label="dsgx_OtherReceivablesTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OtherReceivablesTextBlock" xlink:to="dsgx_OtherReceivablesTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_OtherReceivablesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The entire disclosure for other receivables.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_OtherReceivablesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Receivables [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_OtherReceivablesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Receivables</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="us-gaap_InventoryDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventory</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventory Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_InventoryDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventory</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and Equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and Equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible Assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible Assets Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible Assets</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_GoodwillDisclosureAbstract" xlink:label="dsgx_GoodwillDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_GoodwillDisclosureAbstract" xlink:to="dsgx_GoodwillDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_GoodwillDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill Disclosure [Abstract]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_GoodwillDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillDisclosureTextBlock" xlink:label="us-gaap_GoodwillDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillDisclosureTextBlock" xlink:to="us-gaap_GoodwillDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:label="us-gaap_AccruedLiabilitiesCurrentAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedLiabilitiesCurrentAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedLiabilitiesCurrentAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued Liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Payable and Accrued Liabilities Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued Liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Debt</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LeasesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeasesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leases</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Leases [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leases</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xlink:label="dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xlink:to="dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">N/A</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments, Contingencies and Guarantees</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments and Contingencies Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments, Contingencies and Guarantees</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock" xlink:label="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock" xlink:to="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments Contingencies and Guarantees [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Commitments, Contingencies and Guarantees</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_EquityAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EquityAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share Capital</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stockholders' Equity Note Disclosure [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share Capital</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share [Text Block]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-Based Compensation Plans</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-Based Compensation Plans</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Taxes.</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract Balances, Performance Obligations and Contract Costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract Balances, Performance Obligations and Contract Costs.</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherIncomeAndExpensesAbstract" xlink:label="us-gaap_OtherIncomeAndExpensesAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_OtherIncomeAndExpensesAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherIncomeAndExpensesAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Charges.</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:label="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:to="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Charges</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SupplementalCashFlowElementsAbstract" xlink:label="us-gaap_SupplementalCashFlowElementsAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_SupplementalCashFlowElementsAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SupplementalCashFlowElementsAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supplemental Cash Flow Information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Flow, Supplemental Disclosures [Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Supplemental Cash Flow Information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingAbstract_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingAbstract_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segmented Information.</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segmented Information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basis of Accounting, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basis of Presentation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">New Accounting Pronouncements, Policy [Policy Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Recently issued accounting pronouncements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Business Acquisitions, by Acquisition [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of preliminary purchase price allocation for businesses acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:to="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Acquired Finite-Lived Intangible Assets by Major Class [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of acquired intangible assets are being amortized over their estimated useful lives</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Pro Forma Information [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business acquisition on pro forma information</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:to="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Derivative Assets at Fair Value [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of financial instruments measured at fair value on recurring basis</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of changes in fair value measurements</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of trade accounts receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:to="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, Allowance for Credit Loss [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of changes in provision for credit losses</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_OtherReceivablesTableTextBlock" xlink:label="dsgx_OtherReceivablesTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OtherReceivablesTableTextBlock" xlink:to="dsgx_OtherReceivablesTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_OtherReceivablesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of other receivables.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_OtherReceivablesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Receivables [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_OtherReceivablesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of other receivables</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of property and equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Finite-Lived Intangible Assets [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of intangible asset</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfGoodwillTextBlock" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Goodwill [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Accrued Liabilities [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of accrued liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCostTableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseCostTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lease, Cost [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LeaseCostTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of components of operating lease expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, Maturity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of maturities for operating lease liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of computation of basic and diluted earnings per share</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of estimated stock-based compensation expense recognized in condensed consolidated statement of operations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of weighted-average assumptions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Option, Activity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of stock option activity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Option, Exercise Price Range [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of performance share units activity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Nonvested Share Activity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Non vested share activity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:to="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Performance Shares, Outstanding Activity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of performance share units activity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary of restricted share units activity</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:to="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of cash settled under restricted share units.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule Of Cash Settled Restricted Share Unit Plan Activity [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Summary cash settled restricted share unit plan activity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Contract Asset, Contract Liability, and Receivable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of the changes in the contract assets balance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:to="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Other Operating Cost and Expense, by Component [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of components of other charges</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:to="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Restructuring Reserve by Type of Cost [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of changes in restructuring plan</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of cash flow changes in operating asset and liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:to="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of disaggregated revenue information by geographic location of customer and revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Segment Reporting Information, by Segment [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of segment reporting information, by segment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:to="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of disclosure on geographic areas, long-lived assets in individual foreign countries by country</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Business Acquisitions, by Acquisition [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Acquiree [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_QuestawebMember" xlink:to="dsgx_QuestawebMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_QuestawebMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to QuestaWeb.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_QuestawebMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">QuestaWeb</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_PortrixMember" xlink:to="dsgx_PortrixMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_PortrixMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to Portrix.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_PortrixMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Portrix</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_GreenmileMember" xlink:to="dsgx_GreenmileMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_GreenmileMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to GreenMile.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_GreenmileMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">GreenMile</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_The2021AcquisitionsMember" xlink:to="dsgx_The2021AcquisitionsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_The2021AcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to the 2021 acquisitions.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_The2021AcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The 2021 Acquisitions [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_Acquisitions2022Member" xlink:label="dsgx_Acquisitions2022Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Acquisitions2022Member" xlink:to="dsgx_Acquisitions2022Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_Acquisitions2022Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to the 2022 acquisitions.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_Acquisitions2022Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisitions 2022 [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_VisualComplianceMember" xlink:to="dsgx_VisualComplianceMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_VisualComplianceMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to the acquisition of substantially all of the assets of the businesses run by the Management Systems Resources Inc. group of companies (collectively, "Visual Compliance"), a provider of software solutions and services to automate customs, trade and fiscal compliance processes including denied and restricted party screening processes and export licensing.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_VisualComplianceMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Visual Compliance [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents Core Transport Technologies NZ Limited ("CORE").</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Core Transport Technologies NZ Limited [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_VelocityMailMember" xlink:to="dsgx_VelocityMailMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_VelocityMailMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to Velocity Mail, LLC.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_VelocityMailMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Velocity Mail [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_PinPointMember" xlink:to="dsgx_PinPointMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_PinPointMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to PinPoint GPS Solutions Inc.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_PinPointMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">PinPoint [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_Fiscal2023AcquisitionsMember" xlink:label="dsgx_Fiscal2023AcquisitionsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Fiscal2023AcquisitionsMember" xlink:to="dsgx_Fiscal2023AcquisitionsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_Fiscal2023AcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the member information pertaining to Fiscal 2023 Acquisitions.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_Fiscal2023AcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fiscal 2023 Acquisitions</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_NetChbLlcMember" xlink:to="dsgx_NetChbLlcMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_NetChbLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to Net CHB, LLC,</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_NetChbLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net CHB, LLC</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_FoxtrotMember" xlink:to="dsgx_FoxtrotMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_FoxtrotMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to Foxtrot.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_FoxtrotMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Foxtrot</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_XpsTechnologyLlcMember" xlink:label="dsgx_XpsTechnologyLlcMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_XpsTechnologyLlcMember" xlink:to="dsgx_XpsTechnologyLlcMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_XpsTechnologyLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the member information pertaining to XPS Technology LLC.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_XpsTechnologyLlcMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">XPS Technology LLC</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Gross contractual amount of trade receivables acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Acquired Receivable, Fair Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair value of acquired trade receivables</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maximum potential performance-based contingent consideration</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the period (following acquisition) over which contingent consideration is to be paid by the reporting entity if the acquired entity meets certain performance targets.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration Arrangements, Period for Revenue Performance Targets (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Period for revenue performance targets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration, Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair value of the contingent considerations</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent consideration</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Acquisition Related Costs</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisition-related costs</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:to="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of revenue recognized</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" xlink:to="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Pro Forma Information, Earnings or Loss of Acquiree since Acquisition Date, Actual</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of net income recognized</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquisitions (Note 3) (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Equity Interest Issued or Issuable, Number of Shares (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Estimate of contractual cash flows not expected to be collected</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_XpsMember" xlink:to="dsgx_XpsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_XpsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to XPS.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_XpsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">XPS</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2020AcquisitionsMember" xlink:label="dsgx_The2020AcquisitionsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_The2020AcquisitionsMember" xlink:to="dsgx_The2020AcquisitionsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_The2020AcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to the 2020 acquisitions (Visual Compliance, CORE, STEPcom, and BestTransport).</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_The2020AcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The 2020 Acquisitions [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2019AcquisitionsMember" xlink:label="dsgx_The2019AcquisitionsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_The2019AcquisitionsMember" xlink:to="dsgx_The2019AcquisitionsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_The2019AcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to the 2019 acquisitions (Aljex, Velocity Mail, and PinPoint).</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_The2019AcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The 2019 Acquisitions [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2022AcquisitionsMember" xlink:label="dsgx_The2022AcquisitionsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_The2022AcquisitionsMember" xlink:to="dsgx_The2022AcquisitionsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_The2022AcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to the 2022 acquisitions.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_The2022AcquisitionsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The 2022 Acquisitions [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets by Major Class [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Major Class Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerRelationshipsMember" xlink:to="us-gaap_CustomerRelationshipsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CustomerRelationshipsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Customer agreements and relationships</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ExistingTechnologyMember" xlink:to="dsgx_ExistingTechnologyMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ExistingTechnologyMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information about existing technology.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ExistingTechnologyMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Existing Technology</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TradeNamesMember" xlink:to="us-gaap_TradeNamesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_TradeNamesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade names</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncompeteAgreementsMember" xlink:to="us-gaap_NoncompeteAgreementsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NoncompeteAgreementsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Non-compete covenants</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:label="dsgx_BusinessCombinationConsiderationTransferredPayable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:to="dsgx_BusinessCombinationConsiderationTransferredPayable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BusinessCombinationConsiderationTransferredPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of liabilities incurred by the acquirer as part of consideration payable transferred in a business combination.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BusinessCombinationConsiderationTransferredPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consideration payable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_BusinessCombinationConsiderationTransferredPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Consideration payable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent consideration</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent consideration</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:to="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business acquisition cost of acquired entity working capital adjustments.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition Cost Of Acquired Entity Working Capital Adjustments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net working capital adjustments payable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Consideration Transferred</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/netLabel" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Purchase price consideration</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current assets, excluding cash acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred revenue</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of long term income tax liability attributable to taxable temporary differences assumed at the acquisition date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Long-term Income Tax Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term income taxes payable</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of operating lease obligation assumed in business combination.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lease obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred income tax liability</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount recognized as of the acquisition date for the identifiable tangible assets acquired in excess of (less than) the aggregate liabilities assumed.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net tangible assets (liabilities) assumed</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-lived intangible assets acquired</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-lived intangible assets acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Common shares issued</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property and equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred income tax asset</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other long-term assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAcquiredFromAcquisition" xlink:to="us-gaap_CashAcquiredFromAcquisition_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAcquiredFromAcquisition_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Acquired from Acquisition</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CashAcquiredFromAcquisition_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash acquired</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Useful Life</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Acquired intangible assets estimated useful lives (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Pro Forma Revenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenues</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Pro Forma Net Income (Loss)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net income</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Pro Forma Earnings Per Share, Basic</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Basic (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Acquisition, Pro Forma Earnings Per Share, Diluted</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Diluted (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Statement Location [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_IncomeStatementLocationDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementLocationDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Statement Location [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">General and Administrative Expense [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="us-gaap_MeasurementInputTypeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputTypeAxis" xlink:to="us-gaap_MeasurementInputTypeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputTypeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Input Type [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="us-gaap_MeasurementInputTypeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputTypeDomain" xlink:to="us-gaap_MeasurementInputTypeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputTypeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Input Type [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" xlink:label="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" xlink:to="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Input, Long-term Revenue Growth Rate [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputDiscountRateMember" xlink:label="us-gaap_MeasurementInputDiscountRateMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MeasurementInputDiscountRateMember" xlink:to="us-gaap_MeasurementInputDiscountRateMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_MeasurementInputDiscountRateMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Measurement Input, Discount Rate [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeAxis" xlink:to="srt_RangeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_RangeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statistical Measurement [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeMember" xlink:to="srt_RangeMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_RangeMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Statistical Measurement [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MinimumMember" xlink:to="srt_MinimumMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MinimumMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Minimum</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MaximumMember" xlink:to="srt_MaximumMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MaximumMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maximum</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of shares held by certain derivative instruments entered into by the company.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Instrument, Shares of Common Stock Held (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Instrument, Shares of Common Stock Held (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:to="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The per share amount of common shares held by certain derivative instruments entered into by the company.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Instrument, Common Shares Held, Per Share (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Instrument, Common Shares Held, Per Share (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DerivativeGainOnDerivatives" xlink:label="dsgx_DerivativeGainOnDerivatives" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DerivativeGainOnDerivatives" xlink:to="dsgx_DerivativeGainOnDerivatives_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DerivativeGainOnDerivatives_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of increase in the fair value of derivatives recognized in the income statement.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DerivativeGainOnDerivatives_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Gain On Derivatives</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="dsgx_DerivativeGainOnDerivatives_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative, Gain on Derivatives</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ExpensesAndRecoveriesNet" xlink:label="dsgx_ExpensesAndRecoveriesNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ExpensesAndRecoveriesNet" xlink:to="dsgx_ExpensesAndRecoveriesNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ExpensesAndRecoveriesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of expenses (recovery) related to operating expenses in the operation statement.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ExpensesAndRecoveriesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Expenses and Recoveries, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ExpensesAndRecoveriesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Expense (recovery)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration, Liability, Measurement Input</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Estimated fair value consideration percentage</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Instruments and Hedging Activities Disclosures [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_HedgingDesignationAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Hedging Designation [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_HedgingDesignationDomain" xlink:to="us-gaap_HedgingDesignationDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_HedgingDesignationDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Hedging Designation [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:to="us-gaap_DesignatedAsHedgingInstrumentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Designated as Hedging Instrument [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="us-gaap_NondesignatedMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NondesignatedMember" xlink:to="us-gaap_NondesignatedMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NondesignatedMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Not Designated as Hedging Instrument [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Hierarchy and NAV [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value Hierarchy and NAV [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="us-gaap_FairValueInputsLevel1Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel1Member" xlink:to="us-gaap_FairValueInputsLevel1Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueInputsLevel1Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Level 1</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel2Member" xlink:to="us-gaap_FairValueInputsLevel2Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueInputsLevel2Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Level 2</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel3Member" xlink:to="us-gaap_FairValueInputsLevel3Member_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueInputsLevel3Member_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Level 3</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Derivative Instruments and Hedging Activities Disclosures [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeAssets" xlink:to="us-gaap_DerivativeAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity derivative contracts</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DerivativeAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equity derivative contracts</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at the end</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at the beginning</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Purchases</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase from acquisitions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Settlements</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash payments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) Included in Earnings</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Charges through profit or loss</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" xlink:label="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" xlink:to="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of gain (loss) from effect of movements in foreign exchange from liability measured at fair value on recurring basis using unobservable input (level 3).</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) From Effect Of Movements In Foreign Exchange</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of movements in foreign exchange</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableGrossCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableGrossCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade accounts receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, Allowance for Credit Loss, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Less: Provision for credit losses</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnbilledReceivablesCurrent" xlink:label="us-gaap_UnbilledReceivablesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnbilledReceivablesCurrent" xlink:to="us-gaap_UnbilledReceivablesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnbilledReceivablesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unbilled Receivables, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_UnbilledReceivablesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unbilled Receivables, Current</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PercentageOfAccountReceivable" xlink:label="dsgx_PercentageOfAccountReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_PercentageOfAccountReceivable" xlink:to="dsgx_PercentageOfAccountReceivable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_PercentageOfAccountReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represent of percentage item</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_PercentageOfAccountReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of account receivable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_PercentageOfAccountReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Percentage of account receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProvisionForDoubtfulAccounts" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current period provision for expected losses</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current period provision for expected losses</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts Receivable, Allowance for Credit Loss, Writeoff</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Write-offs charged against the provision</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:to="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of effects of foreign exchange currency movement against the allowance.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of movements in foreign exchange</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_statement-statement-note-6-other-receivables-other-receivables-details" xlink:label="dsgx_statement-statement-note-6-other-receivables-other-receivables-details" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_statement-statement-note-6-other-receivables-other-receivables-details" xlink:to="dsgx_statement-statement-note-6-other-receivables-other-receivables-details_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_statement-statement-note-6-other-receivables-other-receivables-details_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Receivables</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:to="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net working capital adjustments receivable from acquisitions.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net working capital adjustments receivable from acquisitions</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Net working capital adjustments receivable from acquisitions</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other receivables</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherAssetsCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other receivables</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="dsgx_NoteToFinancialStatementDetailsTextual_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Note To Financial Statement Details Textual</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:to="dsgx_AmountsRecoverableFromFundsHeldInEscrow_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount recoverable from funds held In escrow related to acquisitions.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amounts Recoverable from Funds Held in Escrow</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amounts Recoverable from Funds Held in Escrow</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Lived Tangible Asset [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Lived Tangible Asset [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComputerEquipmentMember" xlink:to="us-gaap_ComputerEquipmentMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ComputerEquipmentMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Computer Equipment</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FurnitureAndFixturesMember" xlink:to="us-gaap_FurnitureAndFixturesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FurnitureAndFixturesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Furniture and Fixtures</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseholdImprovementsMember" xlink:to="us-gaap_LeaseholdImprovementsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseholdImprovementsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Leasehold Improvements</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_EquipmentInstalledWithCustomersMember" xlink:label="dsgx_EquipmentInstalledWithCustomersMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_EquipmentInstalledWithCustomersMember" xlink:to="dsgx_EquipmentInstalledWithCustomersMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_EquipmentInstalledWithCustomersMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents equipment installed with customers.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_EquipmentInstalledWithCustomersMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Equipment Installed With Customers</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetUnderConstructionMember" xlink:label="us-gaap_AssetUnderConstructionMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetUnderConstructionMember" xlink:to="us-gaap_AssetUnderConstructionMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetUnderConstructionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Asset under Construction</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Property, Plant and Equipment [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated amortization</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accumulated depreciation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Finite-Lived Intangible Assets [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DevelopedTechnologyRightsMember" xlink:to="us-gaap_DevelopedTechnologyRightsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DevelopedTechnologyRightsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Existing technology</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible assets, cost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible assets, cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible assets, amortization cost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible assets, amortization cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Assets, Net, Ending Balance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intangible assets. net</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year One</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Two</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Two</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Three</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Three</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Four</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Four</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" xlink:label="dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" xlink:to="dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, after Year Four</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Five</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, Year Five</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Finite-Lived Intangible Asset, Expected Amortization, after Year Five</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_ScheduleOfGoodwillTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfGoodwillTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Goodwill [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_GoodwillLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAcquiredDuringPeriod" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill, Acquired During Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill Acquired During Period</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:to="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Goodwill, Translation and Purchase Accounting Adjustments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Adjustments on account of foreign exchange</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Employee-related Liabilities, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued compensation and benefits</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedProfessionalFeesCurrent" xlink:to="us-gaap_AccruedProfessionalFeesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedProfessionalFeesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued Professional Fees, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AccruedProfessionalFeesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued professional fees</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other Accrued Liabilities, Current</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other accrued liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Long-term Debt Instruments [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CreditFacilityAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Credit Facility [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_CreditFacilityDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CreditFacilityDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Credit Facility [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_RevolvingOperatingCreditFacilityMember" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_RevolvingOperatingCreditFacilityMember" xlink:to="dsgx_RevolvingOperatingCreditFacilityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to a revolving operating credit facility for general corporate purposes including the financing of ongoing working capital needs and acquisitions.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revolving Operating Credit Facility [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:label="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:to="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to line of credit borrowings to support foreign exchange and interest rate hedging.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of Credit Borrowings to Support Foreign Exchange and Interest Rate Hedging [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_SeniorSecuredCreditFacilityMember" xlink:to="dsgx_SeniorSecuredCreditFacilityMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_SeniorSecuredCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to the senior secured credit facility.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_SeniorSecuredCreditFacilityMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Senior Secured Credit Facility [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="us-gaap_DebtInstrumentNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_VariableRateAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Variable Rate [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_VariableRateDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_VariableRateDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Variable Rate [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:to="dsgx_CanadaOrUsPrimeRateBaOrLiborMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to the Canada or US prime rate, Bankers' Acceptance (BA) or London Interbank Offered Rate (LIBOR).</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Canada or US Prime Rate, BA, or LIBOR [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of Credit Facility, Maximum Borrowing Capacity</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of Credit Facility, Maximum Borrowing Capacity</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentTerm" xlink:label="us-gaap_DebtInstrumentTerm" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentTerm" xlink:to="us-gaap_DebtInstrumentTerm_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtInstrumentTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Term (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Debt Instrument, Basis Spread on Variable Rate</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of Credit Facility, Unused Capacity, Commitment Fee Percentage</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Line of Credit Facility, Remaining Borrowing Capacity</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Available for use</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCredit" xlink:to="us-gaap_LineOfCredit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LineOfCredit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-Term Line of Credit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LineOfCredit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term Line of Credit, Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LettersOfCreditOutstandingAmount" xlink:to="us-gaap_LettersOfCreditOutstandingAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LettersOfCreditOutstandingAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Letters of Credit Outstanding, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LettersOfCreditOutstandingAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Letters of Credit Outstanding, Amount</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeaseDescriptionTable" xlink:to="us-gaap_LesseeLeaseDescriptionTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeLeaseDescriptionTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Lease, Description [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeLeaseDescriptionLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Lease, Description [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:to="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Remaining Lease Term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Remaining Lease Term (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Renewal Term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Renewal Term (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseCost" xlink:to="us-gaap_OperatingLeaseCost_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating lease cost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating lease cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermLeaseCost" xlink:to="us-gaap_ShortTermLeaseCost_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShortTermLeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Short-term lease cost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShortTermLeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Short-term lease cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_LeaseCost_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lease, Cost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LeaseCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total operating lease cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeasePayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating cash outflows from operating leases included in measurement of lease liabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeasePayments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating cash outflows from operating leases included in measurement of lease liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">New ROU assets obtained in exchange for lease obligations</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">New ROU assets obtained in exchange for lease obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average remaining lease term (years) (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average remaining lease term (years)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average discount rate (%)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average discount rate (%)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear" xlink:to="us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Purchase Obligation, to be Paid, Remainder of Fiscal Year</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Remainder of 2023</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2024</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Year Two</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2025</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Year Three</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2026</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, Year Four</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2027</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour" xlink:label="dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour" xlink:to="dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid, after Year Four</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">2028 and thereafter</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, to be Paid</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total lease payments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Lessee, Operating Lease, Liability, Undiscounted Excess Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Less: imputed interest</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total lease obligations</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Total lease obligations</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingenciesTable" xlink:to="us-gaap_LossContingenciesTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LossContingenciesTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingencies [Table]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember" xlink:label="dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember" xlink:to="dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to CORE, Kontainers, ShipTrack, GreenMile, NetCHB and XPS.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">CORE, Kontainers, ShipTrack, GreenMile, NetCHB And XPS [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesLineItems" xlink:label="us-gaap_LossContingenciesLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingenciesLineItems" xlink:to="us-gaap_LossContingenciesLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LossContingenciesLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Loss Contingencies [Line Items]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:to="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The deferred share units nonvested, total compensation cost not yet recognized.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Units Nonvested Total Compensation Cost Not Yet Recognized</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:to="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The cash settled restricted share units nonvested, total compensation cost not yet recognized.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Settled Restricted Share Units Nonvested Total Compensation Cost Not Yet Recognized</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:to="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of common shares for which there is a deferred share unit liability.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Unit Liability, Number of Common Shares (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Unit Liability, Number of Common Shares (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfStockByClassTable" xlink:label="us-gaap_ScheduleOfStockByClassTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfStockByClassTable" xlink:to="us-gaap_ScheduleOfStockByClassTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfStockByClassTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Stock by Class [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SubsidiarySaleOfStockAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsidiarySaleOfStockAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Sale of Stock [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Sale of Stock [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShelfProspectusMember" xlink:label="dsgx_ShelfProspectusMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShelfProspectusMember" xlink:to="dsgx_ShelfProspectusMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShelfProspectusMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to the short-form base shelf prospectus entered into by the company.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShelfProspectusMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The 2022 Base Shelf Prospectus</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2020BaseShelfProspectusMember" xlink:label="dsgx_The2020BaseShelfProspectusMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_The2020BaseShelfProspectusMember" xlink:to="dsgx_The2020BaseShelfProspectusMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_The2020BaseShelfProspectusMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to the 2020 Base Shelf Prospectus.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_The2020BaseShelfProspectusMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The 2020 Base Shelf Prospectus</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NcibMember" xlink:label="dsgx_NcibMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_NcibMember" xlink:to="dsgx_NcibMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_NcibMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to the intention of buying back the company's own outstanding shares from the markets.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_NcibMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">NCIB</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfStockLineItems" xlink:label="us-gaap_ClassOfStockLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_ClassOfStockLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ClassOfStockLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Class of Stock [Line Items]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShelfProspectusPeriod" xlink:label="dsgx_ShelfProspectusPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShelfProspectusPeriod" xlink:to="dsgx_ShelfProspectusPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShelfProspectusPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The duration of the shelf prospectus.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShelfProspectusPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shelf Prospectus Period (Month)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ShelfProspectusPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shelf Prospectus Period (Month)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShelfProspectusMaximumAmount" xlink:label="dsgx_ShelfProspectusMaximumAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShelfProspectusMaximumAmount" xlink:to="dsgx_ShelfProspectusMaximumAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShelfProspectusMaximumAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The maximum amount related to the shelf prospectus.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShelfProspectusMaximumAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shelf Prospectus, Maximum Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ShelfProspectusMaximumAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shelf Prospectus, Maximum Amount</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharesIssuedPricePerShare" xlink:label="us-gaap_SharesIssuedPricePerShare" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesIssuedPricePerShare" xlink:to="us-gaap_SharesIssuedPricePerShare_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharesIssuedPricePerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares Issued, Price Per Share</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharesIssuedPricePerShare_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shares Issued, Price Per Share (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Issuance of common shares (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock issued during period, shares, new issues (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from Stock Options Exercised</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Proceeds from Stock Options Exercised</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xlink:label="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xlink:to="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Repurchase Program, Number of Shares Authorized to be Repurchased</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of shares to be purchased for cancellation</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_MaximumPercentageOfSharesToBeRepurchased" xlink:label="dsgx_MaximumPercentageOfSharesToBeRepurchased" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_MaximumPercentageOfSharesToBeRepurchased" xlink:to="dsgx_MaximumPercentageOfSharesToBeRepurchased_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_MaximumPercentageOfSharesToBeRepurchased_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the maximum percentage of shares of the public float to be repurchased.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_MaximumPercentageOfSharesToBeRepurchased_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maximum Percentage of Shares to be Repurchased</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_MaximumPercentageOfSharesToBeRepurchased_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Maximum percentage of shares to be repurchased for cancellation</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Earnings Per Share, Basic, by Common Class, Including Two Class Method [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Antidilutive Securities [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Antidilutive Securities, Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeStockOptionMember" xlink:to="us-gaap_EmployeeStockOptionMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeStockOptionMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Option [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_StockOptionsTreasuryStockMethodMember" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_StockOptionsTreasuryStockMethodMember" xlink:to="dsgx_StockOptionsTreasuryStockMethodMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the treasury stock.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Options, Treasury Stock Method [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_PSUsAndRSUsMember" xlink:to="dsgx_PSUsAndRSUsMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_PSUsAndRSUsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to PSUs and RSUs.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_PSUsAndRSUsMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">PSUs and RSUs [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasicLineItems" xlink:label="us-gaap_EarningsPerShareBasicLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasicLineItems" xlink:to="us-gaap_EarningsPerShareBasicLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasicLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_AwardTypeAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AwardTypeAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Award Type [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Award Type [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restricted Stock Units (RSUs) [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Dilutive effect of employee stock options (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PlanNameAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Plan Name [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameDomain" xlink:to="us-gaap_PlanNameDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PlanNameDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Plan Name [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareholderApprovedStockOptionsPlanMember" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareholderApprovedStockOptionsPlanMember" xlink:to="dsgx_ShareholderApprovedStockOptionsPlanMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents Company's shareholder approved stock option plan.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Shareholder-Approved Stock Options Plan [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitPlanMember" xlink:to="dsgx_DeferredShareUnitPlanMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredShareUnitPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">A plan with deferred share units.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredShareUnitPlanMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Unit Plan [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CashSettledRestrictedShareUnitMember" xlink:label="dsgx_CashSettledRestrictedShareUnitMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashSettledRestrictedShareUnitMember" xlink:to="dsgx_CashSettledRestrictedShareUnitMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CashSettledRestrictedShareUnitMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash-Settled Restricted Share Unit [Member]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CashSettledRestrictedShareUnitMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash-Settled Restricted Share Unit [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PerformanceSharesMember" xlink:to="us-gaap_PerformanceSharesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PerformanceSharesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Performance Shares [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Exercise of Option, Tax Benefit</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Stock Options Outstanding (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Granted, shares (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Granted, shares (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Granted, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsOutstandingNumber" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsOutstandingNumber" xlink:to="dsgx_DeferredShareUnitsOutstandingNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of outstanding deferred share units as of the reported date.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Units Outstanding Number (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Units Outstanding Number (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:to="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Compensation Share-based Arrangements, Liability, Current and Noncurrent</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsGrantsInPeriod" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsGrantsInPeriod" xlink:to="dsgx_DeferredShareUnitsGrantsInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of deferred share units granted in period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Units Grants In Period (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Units Grants In Period (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:to="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the number of deferred share units redeemed and settled in cash.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Units Redeemed and Settled in Cash (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Units Redeemed and Settled in Cash (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsCompensationExpense" xlink:label="dsgx_DeferredShareUnitsCompensationExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsCompensationExpense" xlink:to="dsgx_DeferredShareUnitsCompensationExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_DeferredShareUnitsCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The deferred share units compensation expense.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_DeferredShareUnitsCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Units Compensation Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_DeferredShareUnitsCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Share Units Compensation Expense</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:to="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The cash settled restricted share units compensation expense.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Settled Restricted Share Units Compensation Expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cash Settled Restricted Share Units Compensation Expense</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfSalesMember" xlink:to="us-gaap_CostOfSalesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfSalesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Cost of Sales [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingAndMarketingExpenseMember" xlink:to="us-gaap_SellingAndMarketingExpenseMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SellingAndMarketingExpenseMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Selling and Marketing Expense [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpenseMember" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Research and Development Expense [Member]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock-based compensation expense</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect on net income</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Expected dividend yield (%)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Expected volatility (%)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Risk-free rate (%)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Expected option life (years) (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Remaining Contractual Life (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Remaining Contractual Life (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Granted, weighted-average exercise price (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Granted, weighted-average exercise price (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercised, shares (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercised, weighted-average exercise price (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercised, weighted-average exercise price (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Forfeited, shares (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Forfeited, weighted-average exercise price (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Forfeited, weighted-average exercise price (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Exercise Price (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate Intrinsic Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate Intrinsic Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate Intrinsic Value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, shares (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, shares (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, weighted-average exercise price (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, weighted-average exercise price (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, weighted-average remaining contractual life (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, weighted-average remaining contractual life (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, aggregate intrinsic value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, aggregate intrinsic value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, shares (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, shares (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, weighted-average exercise price (in dollars per share)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, weighted-average exercise price (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, weighted-average remaining contractual life (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, weighted-average remaining contractual life (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, aggregate intrinsic value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, aggregate intrinsic value</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Remaining Contractual, PSU (Year)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Remaining Contractual, PSU (Year)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of PSUs Granted (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">PSUs Granted, Weighted-Average Granted Date Fair Value (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Performance units issued (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the weighted average grant date fair value of units issued during the period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Performance units issued, weighted-average granted date fair value (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercised (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercised (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Outstanding (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Grant Date Fair Value, PSU (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Intrinsic value of equity-based compensation awards exercisable. Excludes stock and unit options.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, Aggregate Intrinsic Value, PSU</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted average remaining contractual term for vested portions of equity instruments other than options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, Weighted-Average Remaining Contractual, PSU (Year)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The weighted average fair value of exercisable awards on equity-based plans excluding option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, revenue or profit achievement stock award plan) for which the employer is contingently obligated to issue equity instruments or transfer assets to an employee who has not yet satisfied service or performance criteria necessary to gain title to proceeds from the sale of the award or underlying shares or units.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, PSU weighted-average granted date fair value (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of units exercisable other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Exercisable, number of units (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate Intrinsic Value, PSU</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate Intrinsic Value, PSU</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Aggregate Intrinsic Value, PSU</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Forfeited (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Forfeited, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Stock Options Outstanding (in shares)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Vested or expected to vest, RSU (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:to="dsgx_CRSUAwardsWeightedAverageContractualLife_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The weighted average remaining contractual life of CRSU awards.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Weighted-Average Remaining Contractual Life, CRSU (Year)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardsGrantsInPeriod" xlink:label="dsgx_CRSUAwardsGrantsInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsGrantsInPeriod" xlink:to="dsgx_CRSUAwardsGrantsInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of CRSU grants in period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardsGrantsInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Granted, CRSU (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardsVestedAndSettledInCash" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsVestedAndSettledInCash" xlink:to="dsgx_CRSUAwardsVestedAndSettledInCash_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of CRSU awards vested and settled in cash.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Vested and settled in cash, CRSU (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Vested and settled in cash, CRSU (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardsForfeitedInPeriod" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsForfeitedInPeriod" xlink:to="dsgx_CRSUAwardsForfeitedInPeriod_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to CRSU awards forfeited in period.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Forfeited, CRSU (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Forfeited, CRSU (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardsOutstandingNumber" xlink:label="dsgx_CRSUAwardsOutstandingNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsOutstandingNumber" xlink:to="dsgx_CRSUAwardsOutstandingNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of CRSU awards outstanding.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Outstanding, CRSU (in shares)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="dsgx_CRSUAwardsOutstandingNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Units Outstanding, CRSU (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardNonvestedNumber" xlink:label="dsgx_CRSUAwardNonvestedNumber" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardNonvestedNumber" xlink:to="dsgx_CRSUAwardNonvestedNumber_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardNonvestedNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The number of nonvested CRSU awards.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardNonvestedNumber_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Non-vested, CRSU (in shares)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:to="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The weighted average remaining contractual life of nonvested CRSU awards.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Non-vested, Weighted-Average Remaining Contractual Life, CRSU (Year)</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_IncomeTaxDisclosureTable" xlink:label="dsgx_IncomeTaxDisclosureTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_IncomeTaxDisclosureTable" xlink:to="dsgx_IncomeTaxDisclosureTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_IncomeTaxDisclosureTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">N/A</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_IncomeTaxDisclosureTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Disclosure [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Change in Accounting Principle, Type [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="us-gaap_ChangeInAccountingPrincipleMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ChangeInAccountingPrincipleMember" xlink:to="us-gaap_ChangeInAccountingPrincipleMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ChangeInAccountingPrincipleMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Change in Accounting Principle, Type [Domain]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember" xlink:label="dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember" xlink:to="dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Related to accounting changes.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Voluntary Change Elected to Adopt in Accounting for Deferred Revenue for Income Tax Purposes in the United States [Member]</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_IncomeTaxDisclosureLineItems" xlink:label="dsgx_IncomeTaxDisclosureLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_IncomeTaxDisclosureLineItems" xlink:to="dsgx_IncomeTaxDisclosureLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_IncomeTaxDisclosureLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">N/A</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_IncomeTaxDisclosureLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Tax Disclosure [Line Items]</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_IncomeTaxDisclosureLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income Taxes</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Percent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effective Income Tax Rate Reconciliation, Percent</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current Federal Tax Expense (Benefit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Current Federal Tax Expense (Benefit)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Federal Income Tax Expense (Benefit)</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred Federal Income Tax Expense (Benefit)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:to="us-gaap_UndistributedEarningsOfForeignSubsidiaries_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Undistributed Earnings of Foreign Subsidiaries</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Undistributed Earnings of Foreign Subsidiaries</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liability for Uncertainty in Income Taxes, Noncurrent</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Liability for Uncertainty in Income Taxes, Noncurrent</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:to="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unrecognized Tax Benefits that Would Impact Effective Tax Rate</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Unrecognized Tax Benefits that Would Impact Effective Tax Rate</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:to="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Significant Change in Unrecognized Tax Benefits is Reasonably Possible, Amount of Unrecorded Benefit</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Ending balance</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Beginning balance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Recognition of previously deferred revenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Recognition of previously deferred revenue</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of increase in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from deferral of revenue.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferral of revenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferral of revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increases from business combinations, net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increases from business combinations, net</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from movements in foreign exchange.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of movements in foreign exchange</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of movements in foreign exchange</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Long-term</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetNet" xlink:to="us-gaap_ContractWithCustomerAssetNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Asset, after Allowance for Credit Loss</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ContractWithCustomerAssetNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at July 31, 2022</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ContractWithCustomerAssetNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance at January 31, 2022</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" xlink:label="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" xlink:to="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents the amount of contract asset before the adoption of ASC 606.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Balance</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contract with Customer, Asset, Reclassified to Receivable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Transfers to trade receivables from contract assets</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of increase (decrease) in the contract asset during the period from term licenses recognized as revenue during the period, net of amounts transferred to trade receivables.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Amount of increase (decrease) to the contract asset during the period attributable to the effect of movements in foreign exchange.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Effect of movements in foreign exchange</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligation" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Amount</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Remaining performance obligation, Amount</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Revenue, Remaining Performance Obligation, Percentage</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Remaining performance obligation, Percentage</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Remaining performance obligation, Period (Month)</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedContractCostNet" xlink:label="us-gaap_CapitalizedContractCostNet" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedContractCostNet" xlink:to="us-gaap_CapitalizedContractCostNet_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedContractCostNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Capitalized Contract Cost, Net</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CapitalizedContractCostNet_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Capitalized contract cost, net, Total</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedContractCostAmortization" xlink:label="us-gaap_CapitalizedContractCostAmortization" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedContractCostAmortization" xlink:to="us-gaap_CapitalizedContractCostAmortization_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedContractCostAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Capitalized Contract Cost, Amortization</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CapitalizedContractCostAmortization_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Capitalized contract cost, amortization</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Contingent consideration adjustments</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringCharges" xlink:to="us-gaap_RestructuringCharges_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringCharges_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring on plans</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_RestructuringCharges_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Restructuring plans</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Accounts Receivable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Trade accounts receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherReceivables" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Other Receivables</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Other accounts receivable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Prepaid Expense and Other Assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Prepaid expenses and other</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Inventories</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Inventory</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Accounts Payable</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accounts payable</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Accrued liabilities</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxes_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Income Taxes</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Income taxes payable</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:to="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">The amount of increase (decrease) in operating lease liabilities.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Increase (Decrease) in Operating Lease Liabilities</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Operating leases</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred revenue</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Deferred revenue</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Schedule of Segment Reporting Information, by Segment [Table]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_StatementGeographicalAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_StatementGeographicalAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Geographical [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_SegmentGeographicalDomain" xlink:to="srt_SegmentGeographicalDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_SegmentGeographicalDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Geographical [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2021/country-2021.xsd#country_US" xlink:label="country_US" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="country_US" xlink:to="country_US_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="country_US_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">United States</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EMEAMember" xlink:to="us-gaap_EMEAMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EMEAMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Europe, Middle-East and Africa</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2021/country-2021.xsd#country_CA" xlink:label="country_CA" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="country_CA" xlink:to="country_CA_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="country_CA_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Canada</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_AsiaPacificMember" xlink:to="srt_AsiaPacificMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_AsiaPacificMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Asia Pacific</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingInformationLineItems" xlink:to="us-gaap_SegmentReportingInformationLineItems_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingInformationLineItems_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Segment Reporting Information [Line Items]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductOrServiceAxis_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ProductOrServiceAxis_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Product and Service [Axis]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductsAndServicesDomain" xlink:to="srt_ProductsAndServicesDomain_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ProductsAndServicesDomain_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Product and Service [Domain]</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ServiceMember" xlink:label="us-gaap_ServiceMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ServiceMember" xlink:to="us-gaap_ServiceMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ServiceMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Service</label>
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ProfessionalServicesAndOtherMember" xlink:label="dsgx_ProfessionalServicesAndOtherMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ProfessionalServicesAndOtherMember" xlink:to="dsgx_ProfessionalServicesAndOtherMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:label="dsgx_ProfessionalServicesAndOtherMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Represents information pertaining to items categorized as Professional Services and Other.</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dsgx_ProfessionalServicesAndOtherMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Professional services and other</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LicenseMember" xlink:label="us-gaap_LicenseMember" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LicenseMember" xlink:to="us-gaap_LicenseMember_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LicenseMember_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">License</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NoncurrentAssets" xlink:label="us-gaap_NoncurrentAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncurrentAssets" xlink:to="us-gaap_NoncurrentAssets_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NoncurrentAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Geographical long-lived assets</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NoncurrentAssets_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Geographical long-lived assets</label>
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments" xmlns="http://www.xbrl.org/2003/linkbase" />
    <labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NumberOfReportableSegments" xlink:to="us-gaap_NumberOfReportableSegments_lbl" xmlns="http://www.xbrl.org/2003/linkbase" />
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NumberOfReportableSegments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of Reportable Segments</label>
    <label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NumberOfReportableSegments_lbl" xml:lang="en-US" xmlns="http://www.xbrl.org/2003/linkbase">Number of reportable segments</label>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>8
<FILENAME>dsgx-20220731_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--XBRL document created with Toppan Merrill Bridge  9.6.8167.22744 -->
<!--Based on XBRL 2.1-->
<!--Created on: 9/7/2022 8:26:53 PM-->
<!--Modified on: 9/7/2022 8:26:53 PM-->
<link: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:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink">
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DocumentDocumentAndEntityInformation" roleURI="http://www.descartes.com/role/DocumentDocumentAndEntityInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedBalanceSheets" roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedBalanceSheetsParentheticals" roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedStatementsOfOperations" roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedStatementsOfComprehensiveIncome" roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedStatementsOfComprehensiveIncomeParentheticals" roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeParentheticals" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedStatementsOfShareholdersEquity" roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#StatementCondensedConsolidatedStatementsOfCashFlows" roleURI="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureDescriptionOfBusiness" roleURI="http://www.descartes.com/role/DisclosureDescriptionOfBusiness" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureBasisOfPresentation" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAcquisitions" roleURI="http://www.descartes.com/role/DisclosureAcquisitions" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureFairValueMeasurements" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurements" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureTradeAccountsReceivable" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivable" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherReceivables" roleURI="http://www.descartes.com/role/DisclosureOtherReceivables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureInventory" roleURI="http://www.descartes.com/role/DisclosureInventory" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosurePropertyAndEquipment" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipment" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureIntangibleAssets" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssets" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureGoodwill" roleURI="http://www.descartes.com/role/DisclosureGoodwill" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAccruedLiabilities" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilities" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureLongTermDebt" roleURI="http://www.descartes.com/role/DisclosureLongTermDebt" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureLeases" roleURI="http://www.descartes.com/role/DisclosureLeases" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureCommitmentsContingenciesAndGuarantees" roleURI="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureShareCapital" roleURI="http://www.descartes.com/role/DisclosureShareCapital" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureEarningsPerShare" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShare" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlans" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlans" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureIncomeTaxes" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxes" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCosts" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherCharges" roleURI="http://www.descartes.com/role/DisclosureOtherCharges" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSupplementalCashFlowInformation" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSegmentedInformation" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformation" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureBasisOfPresentationPolicies" roleURI="http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAcquisitionsTables" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureFairValueMeasurementsTables" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureTradeAccountsReceivableTables" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherReceivablesTables" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosurePropertyAndEquipmentTables" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureIntangibleAssetsTables" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureGoodwillTables" roleURI="http://www.descartes.com/role/DisclosureGoodwillTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAccruedLiabilitiesTables" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureLeasesTables" roleURI="http://www.descartes.com/role/DisclosureLeasesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureEarningsPerShareTables" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansTables" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherChargesTables" roleURI="http://www.descartes.com/role/DisclosureOtherChargesTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSupplementalCashFlowInformationTables" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSegmentedInformationTables" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationTables" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAcquisitionsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAcquisitionsProFormaResultsOfOperationsDetails" roleURI="http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureFairValueMeasurementsDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" roleURI="http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureTradeAccountsReceivableTradeReceivablesDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureTradeAccountsReceivableDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" roleURI="http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherReceivablesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherReceivablesAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosurePropertyAndEquipmentDetails" roleURI="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureIntangibleAssetsDetails" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureIntangibleAssetsAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureGoodwillDetails" roleURI="http://www.descartes.com/role/DisclosureGoodwillDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureAccruedLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureLongTermDebtDetails" roleURI="http://www.descartes.com/role/DisclosureLongTermDebtDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureLeasesDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureCommitmentsContingenciesAndGuaranteesDetails" roleURI="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureShareCapitalDetails" roleURI="http://www.descartes.com/role/DisclosureShareCapitalDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureEarningsPerShareDetails" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" roleURI="http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" roleURI="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureIncomeTaxesAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureContractBalancesPerformanceObligationsAndContractCostsDetails" roleURI="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureOtherChargesComponentsOfOtherChargesDetails" roleURI="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" roleURI="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <roleRef xlink:type="simple" xlink:href="dsgx-20220731.xsd#DisclosureSegmentedInformationAdditionalInformationDetails" roleURI="http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails" xmlns="http://www.xbrl.org/2003/linkbase" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" />
  <presentationLink xlink:role="http://www.descartes.com/role/DocumentDocumentAndEntityInformation" xlink:type="extended" xlink:title="00090 - Document - Document And Entity Information" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentInformationTable" xlink:label="DocumentInformationTable" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637981792119015569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DocumentInformationTable" xlink:to="dei_LegalEntityAxis_637981792119015569" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain_637981792119015569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637981792119015569" xlink:to="dei_EntityDomain_637981792119015569" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="us-gaap_StatementClassOfStockAxis_637981792119015569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DocumentInformationTable" xlink:to="us-gaap_StatementClassOfStockAxis_637981792119015569" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfStockDomain" xlink:label="us-gaap_ClassOfStockDomain_637981792119015569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementClassOfStockAxis_637981792119015569" xlink:to="us-gaap_ClassOfStockDomain_637981792119015569" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember_637981792119015569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockDomain_637981792119015569" xlink:to="us-gaap_CommonStockMember_637981792119015569" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_RightsToPurchaseCommonSharesMember" xlink:label="dsgx_RightsToPurchaseCommonSharesMember_637981792119025567" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockDomain_637981792119015569" xlink:to="dsgx_RightsToPurchaseCommonSharesMember_637981792119025567" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressesAddressTypeAxis" xlink:label="dei_EntityAddressesAddressTypeAxis_637981792119025567" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DocumentInformationTable" xlink:to="dei_EntityAddressesAddressTypeAxis_637981792119025567" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AddressTypeDomain" xlink:label="dei_AddressTypeDomain_637981792119025567" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_EntityAddressesAddressTypeAxis_637981792119025567" xlink:to="dei_AddressTypeDomain_637981792119025567" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_BusinessContactMember" xlink:label="dei_BusinessContactMember_637981792119025567" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_AddressTypeDomain_637981792119025567" xlink:to="dei_BusinessContactMember_637981792119025567" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems_637981792119025567" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DocumentInformationTable" xlink:to="dei_DocumentInformationLineItems_637981792119025567" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentType" xlink:label="dei_DocumentType_637981792119025567" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_DocumentType_637981792119025567" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentRegistrationStatement" xlink:label="dei_DocumentRegistrationStatement_637981792119025567" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_DocumentRegistrationStatement_637981792119025567" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentAnnualReport" xlink:label="dei_DocumentAnnualReport_637981792119095570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_DocumentAnnualReport_637981792119095570" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate_637981792119105569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_DocumentPeriodEndDate_637981792119105569" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber_637981792119105569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityFileNumber_637981792119105569" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName_637981792119105569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityRegistrantName_637981792119105569" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode_637981792119105569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityIncorporationStateCountryCode_637981792119105569" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_ContactPersonnelName" xlink:label="dei_ContactPersonnelName_637981792119105569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_ContactPersonnelName_637981792119105569" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1_637981792119105569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityAddressAddressLine1_637981792119105569" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2_637981792119105569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityAddressAddressLine2_637981792119105569" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressAddressLine3" xlink:label="dei_EntityAddressAddressLine3_637981792119105569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityAddressAddressLine3_637981792119105569" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown_637981792119105569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityAddressCityOrTown_637981792119105569" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince_637981792119105569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityAddressStateOrProvince_637981792119105569" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressCountry" xlink:label="dei_EntityAddressCountry_637981792119105569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityAddressCountry_637981792119105569" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode_637981792119115572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityAddressPostalZipCode_637981792119115572" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode_637981792119115572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_CityAreaCode_637981792119115572" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber_637981792119115572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_LocalPhoneNumber_637981792119115572" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle_637981792119115572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_Security12bTitle_637981792119115572" order="18" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol_637981792119115572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_TradingSymbol_637981792119115572" order="19" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName_637981792119115572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_SecurityExchangeName_637981792119115572" order="20" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AnnualInformationForm" xlink:label="dei_AnnualInformationForm_637981792119115572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_AnnualInformationForm_637981792119115572" order="21" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditedAnnualFinancialStatements" xlink:label="dei_AuditedAnnualFinancialStatements_637981792119115572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_AuditedAnnualFinancialStatements_637981792119115572" order="22" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding_637981792119115572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityCommonStockSharesOutstanding_637981792119115572" order="23" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus_637981792119125571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityCurrentReportingStatus_637981792119125571" order="24" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent_637981792119125571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityInteractiveDataCurrent_637981792119125571" order="25" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany_637981792119125571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityEmergingGrowthCompany_637981792119125571" order="26" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorName" xlink:label="dei_AuditorName_637981792119125571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_AuditorName_637981792119125571" order="27" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorFirmId" xlink:label="dei_AuditorFirmId_637981792119125571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_AuditorFirmId_637981792119125571" order="28" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AuditorLocation" xlink:label="dei_AuditorLocation_637981792119125571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_AuditorLocation_637981792119125571" order="29" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey_637981792119125571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityCentralIndexKey_637981792119125571" order="30" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate_637981792119125571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_CurrentFiscalYearEndDate_637981792119125571" order="31" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus_637981792119135572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_DocumentFiscalYearFocus_637981792119135572" order="32" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus_637981792119135572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_DocumentFiscalPeriodFocus_637981792119135572" order="33" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag_637981792119135572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_AmendmentFlag_637981792119135572" order="34" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory_637981792119135572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityFilerCategory_637981792119135572" order="35" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers_637981792119135572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityVoluntaryFilers_637981792119135572" order="36" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer_637981792119135572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityWellKnownSeasonedIssuer_637981792119135572" order="37" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness_637981792119135572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntitySmallBusiness_637981792119135572" order="38" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany_637981792119145571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems_637981792119025567" xlink:to="dei_EntityShellCompany_637981792119145571" order="39" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets" xlink:type="extended" xlink:title="00100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract_637981792119145571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_AssetsAbstract_637981792119145571" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract_637981792119145571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_637981792119145571" xlink:to="us-gaap_AssetsCurrentAbstract_637981792119145571" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_637981792119145571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract_637981792119145571" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_637981792119145571" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableNetAbstract" xlink:label="us-gaap_AccountsReceivableNetAbstract_637981792119145571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract_637981792119145571" xlink:to="us-gaap_AccountsReceivableNetAbstract_637981792119145571" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent_637981792119145571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637981792119145571" xlink:to="us-gaap_AccountsReceivableNetCurrent_637981792119145571" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent_637981792119145571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637981792119145571" xlink:to="us-gaap_OtherReceivablesNetCurrent_637981792119145571" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_637981792119145571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637981792119145571" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_637981792119145571" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet_637981792119145571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637981792119145571" xlink:to="us-gaap_InventoryNet_637981792119145571" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent_637981792119145571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637981792119145571" xlink:to="us-gaap_AssetsCurrent_637981792119145571" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent_637981792119145571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637981792119145571" xlink:to="us-gaap_OtherAssetsNoncurrent_637981792119145571" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_637981792119155572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637981792119145571" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_637981792119155572" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_637981792119155572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637981792119145571" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_637981792119155572" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_637981792119155572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637981792119145571" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_637981792119155572" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_637981792119155572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637981792119145571" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_637981792119155572" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_637981792119155572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637981792119145571" xlink:to="us-gaap_Goodwill_637981792119155572" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets_637981792119155572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract_637981792119145571" xlink:to="us-gaap_Assets_637981792119155572" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637981792119155572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637981792119155572" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637981792119155572" xlink:to="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent_637981792119155572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" xlink:to="us-gaap_AccountsPayableCurrent_637981792119155572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent_637981792119155572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" xlink:to="us-gaap_AccruedLiabilitiesCurrent_637981792119155572" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_637981792119155572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_637981792119155572" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent_637981792119165571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" xlink:to="us-gaap_AccruedIncomeTaxesCurrent_637981792119165571" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="us-gaap_DeferredRevenueCurrent_637981792119165571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" xlink:to="us-gaap_DeferredRevenueCurrent_637981792119165571" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent_637981792119165571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" xlink:to="us-gaap_LiabilitiesCurrent_637981792119165571" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent_637981792119165571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" xlink:to="us-gaap_LongTermDebtNoncurrent_637981792119165571" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_637981792119165571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_637981792119165571" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredRevenueNoncurrent" xlink:label="us-gaap_DeferredRevenueNoncurrent_637981792119165571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" xlink:to="us-gaap_DeferredRevenueNoncurrent_637981792119165571" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedIncomeTaxesNoncurrent" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent_637981792119165571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" xlink:to="us-gaap_AccruedIncomeTaxesNoncurrent_637981792119165571" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_637981792119165571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_637981792119165571" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities_637981792119165571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" xlink:to="us-gaap_Liabilities_637981792119165571" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies_637981792119165571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract_637981792119155572" xlink:to="us-gaap_CommitmentsAndContingencies_637981792119165571" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract_637981792119175619" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract_637981792119155572" xlink:to="us-gaap_StockholdersEquityAbstract_637981792119175619" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue_637981792119175619" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_637981792119175619" xlink:to="us-gaap_CommonStockValue_637981792119175619" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_637981792119175619" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_637981792119175619" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_637981792119175619" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_637981792119175619" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_637981792119175619" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_637981792119175619" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_637981792119175619" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_637981792119175619" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_637981792119175619" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_637981792119175619" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_637981792119175619" xlink:to="us-gaap_StockholdersEquity_637981792119175619" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_637981792119175619" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract_637981792119175619" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_637981792119175619" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" xlink:type="extended" xlink:title="00105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesAuthorizedUnlimited" xlink:label="us-gaap_CommonStockSharesAuthorizedUnlimited_637981792119185572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesAuthorizedUnlimited_637981792119185572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued_637981792119185572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesIssued_637981792119185572" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding_637981792119185572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesOutstanding_637981792119185572" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations" xlink:type="extended" xlink:title="00200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="IncomeStatementAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637981792119185572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637981792119185572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold_637981792119185572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_CostOfGoodsAndServicesSold_637981792119185572" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit_637981792119185572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_GrossProfit_637981792119185572" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostsAndExpensesAbstract" xlink:label="us-gaap_CostsAndExpensesAbstract_637981792119185572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_CostsAndExpensesAbstract_637981792119185572" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense_637981792119185572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637981792119185572" xlink:to="us-gaap_SellingAndMarketingExpense_637981792119185572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense_637981792119185572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637981792119185572" xlink:to="us-gaap_ResearchAndDevelopmentExpense_637981792119185572" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense_637981792119185572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637981792119185572" xlink:to="us-gaap_GeneralAndAdministrativeExpense_637981792119185572" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherCostAndExpenseOperating" xlink:label="us-gaap_OtherCostAndExpenseOperating_637981792119185572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637981792119185572" xlink:to="us-gaap_OtherCostAndExpenseOperating_637981792119185572" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_637981792119185572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637981792119185572" xlink:to="us-gaap_AmortizationOfIntangibleAssets_637981792119185572" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses_637981792119195568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637981792119185572" xlink:to="us-gaap_OperatingExpenses_637981792119195568" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss_637981792119195568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637981792119185572" xlink:to="us-gaap_OperatingIncomeLoss_637981792119195568" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense_637981792119195568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637981792119185572" xlink:to="us-gaap_InterestExpense_637981792119195568" order="8" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InvestmentIncomeNet" xlink:label="us-gaap_InvestmentIncomeNet_637981792119195568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637981792119185572" xlink:to="us-gaap_InvestmentIncomeNet_637981792119195568" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637981792119195568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract_637981792119185572" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_637981792119195568" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_637981792119195568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_637981792119195568" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_637981792119195568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_637981792119195568" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_637981792119195568" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_637981792119195568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_637981792119195568" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_637981792119195568" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit_637981792119195568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_637981792119195568" xlink:to="us-gaap_IncomeTaxExpenseBenefit_637981792119195568" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_637981792119195568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_637981792119195568" xlink:to="us-gaap_NetIncomeLoss_637981792119195568" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract_637981792119195568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_637981792119195568" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic_637981792119195568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_637981792119195568" xlink:to="us-gaap_EarningsPerShareBasic_637981792119195568" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted_637981792119195568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_637981792119195568" xlink:to="us-gaap_EarningsPerShareDiluted_637981792119195568" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_637981792119205568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_637981792119205568" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_637981792119205568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_637981792119205568" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_637981792119205568" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_637981792119205568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_637981792119205568" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_637981792119205568" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" xlink:type="extended" xlink:title="00300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="StatementOfIncomeAndComprehensiveIncomeAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_637981792119205568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_NetIncomeLoss_637981792119205568" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_637981792119205568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_637981792119205568" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_637981792119205568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_637981792119205568" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_637981792119205568" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax_637981792119205568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_637981792119205568" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTax_637981792119205568" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax_637981792119205568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract_637981792119205568" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax_637981792119205568" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeParentheticals" xlink:type="extended" xlink:title="00305 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="StatementOfIncomeAndComprehensiveIncomeAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_637981792119205568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_637981792119205568" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity" xlink:type="extended" xlink:title="00400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="StatementOfStockholdersEquityAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_637981792119215573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable_637981792119215573" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis_637981792119215573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637981792119215573" xlink:to="us-gaap_StatementEquityComponentsAxis_637981792119215573" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember_637981792119215573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637981792119215573" xlink:to="us-gaap_CommonStockMember_637981792119215573" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember_637981792119215573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637981792119215573" xlink:to="us-gaap_AdditionalPaidInCapitalMember_637981792119215573" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_637981792119215573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637981792119215573" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember_637981792119215573" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember_637981792119215573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637981792119215573" xlink:to="us-gaap_RetainedEarningsMember_637981792119215573" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain_637981792119215573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis_637981792119215573" xlink:to="us-gaap_EquityComponentDomain_637981792119215573" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637981792119215573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637981792119215573" xlink:to="us-gaap_StatementLineItems_637981792119215573" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_637981792119215573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637981792119215573" xlink:to="us-gaap_StockholdersEquity_637981792119215573" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_637981792119215573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637981792119215573" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_637981792119215573" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_637981792119215573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637981792119215573" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_637981792119215573" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_637981792119215573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637981792119215573" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_637981792119215573" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_637981792119215573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637981792119215573" xlink:to="us-gaap_NetIncomeLoss_637981792119215573" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_6379817921192155731" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637981792119215573" xlink:to="us-gaap_StockholdersEquity_6379817921192155731" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" xlink:type="extended" xlink:title="00500 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="StatementOfCashFlowsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_637981792119225568" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_637981792119225568" xlink:to="us-gaap_NetIncomeLoss_637981792119225568" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637981792119225568" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637981792119225568" xlink:to="us-gaap_Depreciation_637981792119225568" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637981792119225568" xlink:to="us-gaap_AmortizationOfIntangibleAssets_637981792119225568" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637981792119225568" xlink:to="us-gaap_ShareBasedCompensation_637981792119225568" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637981792119225568" xlink:to="us-gaap_OtherNoncashIncomeExpense_637981792119225568" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637981792119225568" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_637981792119225568" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredTaxCharges" xlink:label="dsgx_DeferredTaxCharges_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637981792119225568" xlink:to="dsgx_DeferredTaxCharges_637981792119225568" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637981792119225568" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital_637981792119225568" order="7" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_637981792119225568" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_637981792119225568" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_637981792119225568" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_637981792119225568" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_637981792119225568" order="1" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637981792119225568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_637981792119225568" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637981792119225568" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_637981792119235568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract_637981792119225568" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_637981792119235568" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637981792119235568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637981792119235568" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit_637981792119235568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637981792119235568" xlink:to="us-gaap_ProceedsFromLinesOfCredit_637981792119235568" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RepaymentsOfDebt" xlink:label="us-gaap_RepaymentsOfDebt_637981792119235568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637981792119235568" xlink:to="us-gaap_RepaymentsOfDebt_637981792119235568" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts_637981792119235568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637981792119235568" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts_637981792119235568" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock_637981792119235568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637981792119235568" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock_637981792119235568" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_637981792119235568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637981792119235568" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_637981792119235568" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_637981792119235568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637981792119235568" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_637981792119235568" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_637981792119235568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637981792119235568" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_637981792119235568" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_637981792119235568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637981792119235568" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_637981792119235568" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_637981792119235568" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637981792119235568" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_637981792119235568" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_637981792119245572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract_637981792119235568" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_637981792119245572" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_637981792119245572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_637981792119245572" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet_637981792119245572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract_637981792119245572" xlink:to="us-gaap_InterestPaidNet_637981792119245572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet_637981792119245572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract_637981792119245572" xlink:to="us-gaap_IncomeTaxesPaidNet_637981792119245572" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureDescriptionOfBusiness" xlink:type="extended" xlink:title="10101 - Disclosure - Description of the Business" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_637981792119245572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_637981792119245572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureBasisOfPresentation" xlink:type="extended" xlink:title="10201 - Disclosure - Basis of Presentation" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_637981792119245572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock_637981792119245572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitions" xlink:type="extended" xlink:title="10301 - Disclosure - Acquisitions" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_637981792119255571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock_637981792119255571" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurements" xlink:type="extended" xlink:title="10401 - Disclosure - Fair Value Measurements" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock_637981792119255571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock_637981792119255571" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureTradeAccountsReceivable" xlink:type="extended" xlink:title="10501 - Disclosure - Trade Accounts Receivable" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReceivablesAbstract" xlink:label="ReceivablesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_637981792119255571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReceivablesAbstract" xlink:to="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_637981792119255571" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherReceivables" xlink:type="extended" xlink:title="10601 - Disclosure - Other Receivables" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_OtherReceivablesDisclosureAbstract" xlink:label="OtherReceivablesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_OtherReceivablesTextBlock" xlink:label="dsgx_OtherReceivablesTextBlock_637981792119255571" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherReceivablesDisclosureAbstract" xlink:to="dsgx_OtherReceivablesTextBlock_637981792119255571" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureInventory" xlink:type="extended" xlink:title="10701 - Disclosure - Inventory" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="InventoryDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock_637981792119265573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryDisclosureTextBlock_637981792119265573" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosurePropertyAndEquipment" xlink:type="extended" xlink:title="10801 - Disclosure - Property and Equipment" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_637981792119265573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_637981792119265573" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIntangibleAssets" xlink:type="extended" xlink:title="10901 - Disclosure - Intangible Assets" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="IntangibleAssetsNetExcludingGoodwillAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_637981792119265573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_637981792119265573" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureGoodwill" xlink:type="extended" xlink:title="11001 - Disclosure - Goodwill" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_GoodwillDisclosureAbstract" xlink:label="GoodwillDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillDisclosureTextBlock" xlink:label="us-gaap_GoodwillDisclosureTextBlock_637981792119265573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GoodwillDisclosureAbstract" xlink:to="us-gaap_GoodwillDisclosureTextBlock_637981792119265573" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAccruedLiabilities" xlink:type="extended" xlink:title="11101 - Disclosure - Accrued Liabilities" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:label="AccruedLiabilitiesCurrentAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_637981792119275570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccruedLiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_637981792119275570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLongTermDebt" xlink:type="extended" xlink:title="11201 - Disclosure - Long-term Debt" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="DebtDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock_637981792119275570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock_637981792119275570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLeases" xlink:type="extended" xlink:title="11301 - Disclosure - Leases" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_637981792119275570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_637981792119275570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees" xlink:type="extended" xlink:title="11401 - Disclosure - Commitments, Contingencies and Guarantees" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xlink:label="CommitmentsContingenciesAndGuaranteesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_637981792119275570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_637981792119275570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock" xlink:label="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_637981792119275570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xlink:to="us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock_637981792119275570" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureShareCapital" xlink:type="extended" xlink:title="11501 - Disclosure - Share Capital" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EquityAbstract" xlink:label="EquityAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_637981792119285577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAbstract" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock_637981792119285577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureEarningsPerShare" xlink:type="extended" xlink:title="11601 - Disclosure - Earnings Per Share" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock_637981792119285577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock_637981792119285577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlans" xlink:type="extended" xlink:title="11701 - Disclosure - Stock-Based Compensation Plans" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_637981792119285577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_637981792119285577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxes" xlink:type="extended" xlink:title="11801 - Disclosure - Income Taxes" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_637981792119285577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_637981792119285577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts" xlink:type="extended" xlink:title="11901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="RevenueFromContractWithCustomerAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_637981792119285577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock_637981792119285577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherCharges" xlink:type="extended" xlink:title="12001 - Disclosure - Other Charges" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherIncomeAndExpensesAbstract" xlink:label="OtherIncomeAndExpensesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:label="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock_637981792119295569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock_637981792119295569" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation" xlink:type="extended" xlink:title="12101 - Disclosure - Supplemental Cash Flow Information" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SupplementalCashFlowElementsAbstract" xlink:label="SupplementalCashFlowElementsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock_637981792119295569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock_637981792119295569" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformation" xlink:type="extended" xlink:title="12201 - Disclosure - Segmented Information" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_637981792119295569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_637981792119295569" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" xlink:type="extended" xlink:title="20202 - Disclosure - Basis of Presentation (Policies)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_637981792119295569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_637981792119295569" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_637981792119295569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_637981792119295569" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsTables" xlink:type="extended" xlink:title="30303 - Disclosure - Acquisitions (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_637981792119305569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock_637981792119305569" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock_637981792119305569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock_637981792119305569" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_637981792119305569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock_637981792119305569" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsTables" xlink:type="extended" xlink:title="30403 - Disclosure - Fair Value Measurements (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock_637981792119305569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FairValueDisclosuresAbstract" xlink:to="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock_637981792119305569" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_637981792119305569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_637981792119305569" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables" xlink:type="extended" xlink:title="30503 - Disclosure - Trade Accounts Receivable (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReceivablesAbstract" xlink:label="ReceivablesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_637981792119305569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReceivablesAbstract" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_637981792119305569" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_637981792119305569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReceivablesAbstract" xlink:to="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock_637981792119305569" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherReceivablesTables" xlink:type="extended" xlink:title="30603 - Disclosure - Other Receivables (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_OtherReceivablesDisclosureAbstract" xlink:label="OtherReceivablesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_OtherReceivablesTableTextBlock" xlink:label="dsgx_OtherReceivablesTableTextBlock_637981792119315569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherReceivablesDisclosureAbstract" xlink:to="dsgx_OtherReceivablesTableTextBlock_637981792119315569" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables" xlink:type="extended" xlink:title="30803 - Disclosure - Property and Equipment (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_637981792119315569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_637981792119315569" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIntangibleAssetsTables" xlink:type="extended" xlink:title="30903 - Disclosure - Intangible Assets (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="IntangibleAssetsNetExcludingGoodwillAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_637981792119315569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_637981792119315569" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureGoodwillTables" xlink:type="extended" xlink:title="31003 - Disclosure - Goodwill (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_GoodwillDisclosureAbstract" xlink:label="GoodwillDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_637981792119315569" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GoodwillDisclosureAbstract" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock_637981792119315569" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables" xlink:type="extended" xlink:title="31103 - Disclosure - Accrued Liabilities (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:label="AccruedLiabilitiesCurrentAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_637981792119325570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccruedLiabilitiesCurrentAbstract" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_637981792119325570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLeasesTables" xlink:type="extended" xlink:title="31303 - Disclosure - Leases (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock_637981792119325570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LeaseCostTableTextBlock_637981792119325570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_637981792119325570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_637981792119325570" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureEarningsPerShareTables" xlink:type="extended" xlink:title="31603 - Disclosure - Earnings Per Share (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_637981792119325570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_637981792119325570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" xlink:type="extended" xlink:title="31703 - Disclosure - Stock-Based Compensation Plans (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_637981792119325570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_637981792119325570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_637981792119335570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_637981792119335570" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_637981792119335570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_637981792119335570" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_637981792119335570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_637981792119335570" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_637981792119335570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock_637981792119335570" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_637981792119335570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_637981792119335570" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_637981792119335570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_637981792119335570" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_637981792119335570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock_637981792119335570" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" xlink:type="extended" xlink:title="31903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="RevenueFromContractWithCustomerAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_637981792119335570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_637981792119335570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesTables" xlink:type="extended" xlink:title="32003 - Disclosure - Other Charges (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherIncomeAndExpensesAbstract" xlink:label="OtherIncomeAndExpensesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock_637981792119335570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock_637981792119335570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_637981792119335570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_637981792119335570" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables" xlink:type="extended" xlink:title="32103 - Disclosure - Supplemental Cash Flow Information (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SupplementalCashFlowElementsAbstract" xlink:label="SupplementalCashFlowElementsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_637981792119345570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_637981792119345570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationTables" xlink:type="extended" xlink:title="32203 - Disclosure - Segmented Information (Tables)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_637981792119345570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock_637981792119345570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_637981792119345570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_637981792119345570" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_637981792119345570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_637981792119345570" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsDetails" xlink:type="extended" xlink:title="40301 - Disclosure - Acquisitions (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119345570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119345570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637981792119345570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119345570" xlink:to="us-gaap_BusinessAcquisitionAxis_637981792119345570" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637981792119345570" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" xlink:to="dsgx_QuestawebMember_637981792119355570" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" xlink:to="dsgx_PortrixMember_637981792119355570" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" xlink:to="dsgx_GreenmileMember_637981792119355570" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" xlink:to="dsgx_The2021AcquisitionsMember_637981792119355570" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_Acquisitions2022Member" xlink:label="dsgx_Acquisitions2022Member_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" xlink:to="dsgx_Acquisitions2022Member_637981792119355570" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" xlink:to="dsgx_VisualComplianceMember_637981792119355570" order="6" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember_637981792119355570" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" xlink:to="dsgx_VelocityMailMember_637981792119355570" order="8" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" xlink:to="dsgx_PinPointMember_637981792119355570" order="9" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_Fiscal2023AcquisitionsMember" xlink:label="dsgx_Fiscal2023AcquisitionsMember_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" xlink:to="dsgx_Fiscal2023AcquisitionsMember_637981792119355570" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" xlink:to="dsgx_NetChbLlcMember_637981792119355570" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" xlink:to="dsgx_FoxtrotMember_637981792119355570" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_XpsTechnologyLlcMember" xlink:label="dsgx_XpsTechnologyLlcMember_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119345570" xlink:to="dsgx_XpsTechnologyLlcMember_637981792119355570" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_637981792119355570" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119345570" xlink:to="us-gaap_BusinessAcquisitionLineItems_637981792119355570" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637981792119365573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119355570" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637981792119365573" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount_637981792119365573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119355570" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount_637981792119365573" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue_637981792119365573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119355570" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesFairValue_637981792119365573" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_637981792119365573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119355570" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_637981792119365573" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_637981792119365573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119355570" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_637981792119365573" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_637981792119365573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119355570" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_637981792119365573" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_637981792119365573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119355570" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts_637981792119365573" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual_637981792119365573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119355570" xlink:to="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual_637981792119365573" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual_637981792119365573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119355570" xlink:to="us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual_637981792119365573" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_637981792119365573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119355570" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued_637981792119365573" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible_637981792119375573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119355570" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible_637981792119375573" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" xlink:type="extended" xlink:title="40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119375573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119375573" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637981792119375573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119375573" xlink:to="us-gaap_BusinessAcquisitionAxis_637981792119375573" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119375573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637981792119375573" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119375573" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember_637981792119375573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119375573" xlink:to="dsgx_NetChbLlcMember_637981792119375573" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember_637981792119375573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119375573" xlink:to="dsgx_FoxtrotMember_637981792119375573" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember_637981792119375573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119375573" xlink:to="dsgx_XpsMember_637981792119375573" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember_637981792119375573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119375573" xlink:to="dsgx_The2021AcquisitionsMember_637981792119375573" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember_637981792119375573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119375573" xlink:to="dsgx_VisualComplianceMember_637981792119375573" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember_637981792119375573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119375573" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember_637981792119375573" order="6" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2020AcquisitionsMember" xlink:label="dsgx_The2020AcquisitionsMember_637981792119375573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119375573" xlink:to="dsgx_The2020AcquisitionsMember_637981792119375573" order="7" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember_637981792119375573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119375573" xlink:to="dsgx_VelocityMailMember_637981792119375573" order="8" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember_637981792119375573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119375573" xlink:to="dsgx_PinPointMember_637981792119375573" order="9" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2019AcquisitionsMember" xlink:label="dsgx_The2019AcquisitionsMember_637981792119385574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119375573" xlink:to="dsgx_The2019AcquisitionsMember_637981792119385574" order="10" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2022AcquisitionsMember" xlink:label="dsgx_The2022AcquisitionsMember_637981792119385574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119375573" xlink:to="dsgx_The2022AcquisitionsMember_637981792119385574" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637981792119385574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119375573" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637981792119385574" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119385574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637981792119385574" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119385574" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember_637981792119385574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119385574" xlink:to="us-gaap_CustomerRelationshipsMember_637981792119385574" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember_637981792119385574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119385574" xlink:to="dsgx_ExistingTechnologyMember_637981792119385574" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember_637981792119385574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119385574" xlink:to="us-gaap_TradeNamesMember_637981792119385574" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember_637981792119385574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119385574" xlink:to="us-gaap_NoncompeteAgreementsMember_637981792119385574" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637981792119385574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119375573" xlink:to="dei_LegalEntityAxis_637981792119385574" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain_637981792119385574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637981792119385574" xlink:to="dei_EntityDomain_637981792119385574" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_637981792119385574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119375573" xlink:to="us-gaap_BusinessAcquisitionLineItems_637981792119385574" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637981792119385574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_637981792119385574" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:label="dsgx_BusinessCombinationConsiderationTransferredPayable_637981792119395572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="dsgx_BusinessCombinationConsiderationTransferredPayable_637981792119395572" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_637981792119395572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_637981792119395572" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_637981792119395572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments_637981792119395572" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_637981792119395572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1_637981792119395572" order="5" use="optional" preferredLabel="http://www.xbrl.org/2009/role/netLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_637981792119395572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets_637981792119395572" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_637981792119395572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_637981792119395572" order="7" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_637981792119395572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_637981792119395572" order="8" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability_637981792119395572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability_637981792119395572" order="9" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_637981792119395572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation_637981792119395572" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_637981792119395572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_637981792119395572" order="11" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities_637981792119395572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities_637981792119395572" order="12" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_637981792119405573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet_637981792119405573" order="13" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_637981792119405573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_637981792119405573" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_637981792119405573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_637981792119405573" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable_637981792119405573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable_637981792119405573" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_637981792119405573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_637981792119405573" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_637981792119405573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_637981792119405573" order="18" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_637981792119405573" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119385574" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_637981792119405573" order="19" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" xlink:type="extended" xlink:title="40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119415572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119415572" xlink:to="us-gaap_BusinessAcquisitionAxis_637981792119415572" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637981792119415572" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119415572" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119415572" xlink:to="dsgx_VisualComplianceMember_637981792119415572" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119415572" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember_637981792119415572" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119415572" xlink:to="dsgx_VelocityMailMember_637981792119415572" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119415572" xlink:to="dsgx_PinPointMember_637981792119415572" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119415572" xlink:to="dsgx_NetChbLlcMember_637981792119415572" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119415572" xlink:to="dsgx_FoxtrotMember_637981792119415572" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119415572" xlink:to="dsgx_XpsMember_637981792119415572" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119415572" xlink:to="dei_LegalEntityAxis_637981792119415572" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637981792119415572" xlink:to="dei_EntityDomain_637981792119415572" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119415572" xlink:to="us-gaap_BusinessAcquisitionLineItems_637981792119415572" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition_637981792119415572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119415572" xlink:to="us-gaap_CashAcquiredFromAcquisition_637981792119415572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails" xlink:type="extended" xlink:title="40304 - Disclosure - Acquisitions - Acquired Intangible Assets Useful Lives (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119425572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119425572" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637981792119425572" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637981792119425572" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119425572" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119425572" xlink:to="us-gaap_CustomerRelationshipsMember_637981792119425572" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119425572" xlink:to="dsgx_ExistingTechnologyMember_637981792119425572" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119425572" xlink:to="us-gaap_TradeNamesMember_637981792119425572" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119425572" xlink:to="us-gaap_NoncompeteAgreementsMember_637981792119425572" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119425572" xlink:to="us-gaap_BusinessAcquisitionAxis_637981792119425572" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637981792119425572" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119425572" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119425572" xlink:to="dsgx_VisualComplianceMember_637981792119425572" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119425572" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember_637981792119425572" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119425572" xlink:to="dsgx_VelocityMailMember_637981792119425572" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119425572" xlink:to="dsgx_PinPointMember_637981792119425572" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember_637981792119425572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119425572" xlink:to="dsgx_NetChbLlcMember_637981792119425572" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember_637981792119435572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119425572" xlink:to="dsgx_FoxtrotMember_637981792119435572" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember_637981792119435572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119425572" xlink:to="dsgx_XpsMember_637981792119435572" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis_637981792119435572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119425572" xlink:to="dei_LegalEntityAxis_637981792119435572" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain_637981792119435572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis_637981792119435572" xlink:to="dei_EntityDomain_637981792119435572" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems_637981792119435572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_637981792119425572" xlink:to="us-gaap_BusinessAcquisitionLineItems_637981792119435572" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_637981792119435572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems_637981792119435572" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_637981792119435572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails" xlink:type="extended" xlink:title="40305 - Disclosure - Acquisitions - Pro Forma Results of Operations (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:label="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue_637981792119435572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue_637981792119435572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_637981792119435572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_637981792119435572" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract_637981792119435572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationAndAssetAcquisitionAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_637981792119435572" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic_637981792119435572" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_637981792119435572" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic_637981792119435572" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted_637981792119445575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract_637981792119435572" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted_637981792119445575" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" xlink:type="extended" xlink:title="40401 - Disclosure - Fair Value Measurements (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable_637981792119445575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FairValueDisclosuresAbstract" xlink:to="us-gaap_StatementTable_637981792119445575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis_637981792119445575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637981792119445575" xlink:to="us-gaap_IncomeStatementLocationAxis_637981792119445575" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain_637981792119445575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis_637981792119445575" xlink:to="us-gaap_IncomeStatementLocationDomain_637981792119445575" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_637981792119445575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_637981792119445575" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember_637981792119445575" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputTypeAxis" xlink:label="us-gaap_MeasurementInputTypeAxis_637981792119445575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637981792119445575" xlink:to="us-gaap_MeasurementInputTypeAxis_637981792119445575" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputTypeDomain" xlink:label="us-gaap_MeasurementInputTypeDomain_637981792119445575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_MeasurementInputTypeAxis_637981792119445575" xlink:to="us-gaap_MeasurementInputTypeDomain_637981792119445575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputLongTermRevenueGrowthRateMember" xlink:label="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_637981792119445575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_MeasurementInputTypeDomain_637981792119445575" xlink:to="us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_637981792119445575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_MeasurementInputDiscountRateMember" xlink:label="us-gaap_MeasurementInputDiscountRateMember_637981792119445575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_MeasurementInputTypeDomain_637981792119445575" xlink:to="us-gaap_MeasurementInputDiscountRateMember_637981792119445575" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637981792119445575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637981792119445575" xlink:to="srt_RangeAxis_637981792119445575" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637981792119445575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637981792119445575" xlink:to="srt_RangeMember_637981792119445575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637981792119445575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637981792119445575" xlink:to="srt_MinimumMember_637981792119445575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637981792119445575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637981792119445575" xlink:to="srt_MaximumMember_637981792119445575" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems_637981792119455575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable_637981792119445575" xlink:to="us-gaap_StatementLineItems_637981792119455575" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_637981792119455575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637981792119455575" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_637981792119455575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_637981792119455575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637981792119455575" xlink:to="dsgx_DerivativeInstrumentCommonSharesHeldPerShare_637981792119455575" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DerivativeGainOnDerivatives" xlink:label="dsgx_DerivativeGainOnDerivatives_637981792119455575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637981792119455575" xlink:to="dsgx_DerivativeGainOnDerivatives_637981792119455575" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ExpensesAndRecoveriesNet" xlink:label="dsgx_ExpensesAndRecoveriesNet_637981792119455575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637981792119455575" xlink:to="dsgx_ExpensesAndRecoveriesNet_637981792119455575" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput_637981792119455575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems_637981792119455575" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput_637981792119455575" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" xlink:type="extended" xlink:title="40402 - Disclosure - Fair Value Measurements - Derivative Instruments at Fair Value (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_637981792119455575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FairValueDisclosuresAbstract" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_637981792119455575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis_637981792119455575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_637981792119455575" xlink:to="us-gaap_HedgingDesignationAxis_637981792119455575" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain_637981792119455575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationAxis_637981792119455575" xlink:to="us-gaap_HedgingDesignationDomain_637981792119455575" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember_637981792119455575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationDomain_637981792119455575" xlink:to="us-gaap_DesignatedAsHedgingInstrumentMember_637981792119455575" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="us-gaap_NondesignatedMember_637981792119455575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationDomain_637981792119455575" xlink:to="us-gaap_NondesignatedMember_637981792119455575" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis_637981792119455575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_637981792119455575" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis_637981792119455575" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637981792119465575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis_637981792119455575" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637981792119465575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="us-gaap_FairValueInputsLevel1Member_637981792119465575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637981792119465575" xlink:to="us-gaap_FairValueInputsLevel1Member_637981792119465575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member_637981792119465575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637981792119465575" xlink:to="us-gaap_FairValueInputsLevel2Member_637981792119465575" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member_637981792119465575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637981792119465575" xlink:to="us-gaap_FairValueInputsLevel3Member_637981792119465575" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_637981792119465575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable_637981792119455575" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_637981792119465575" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets_637981792119465575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_637981792119465575" xlink:to="us-gaap_DerivativeAssets_637981792119465575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_637981792119465575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems_637981792119465575" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_637981792119465575" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" xlink:type="extended" xlink:title="40403 - Disclosure - Fair Value Measurements - Changes in fair value measurements (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="FairValueDisclosuresAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_637981792119465575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_637981792119465575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis_637981792119465575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_637981792119465575" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis_637981792119465575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637981792119465575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis_637981792119465575" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637981792119465575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member_637981792119465575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_637981792119465575" xlink:to="us-gaap_FairValueInputsLevel3Member_637981792119465575" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637981792119465575" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable_637981792119465575" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637981792119465575" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_637981792119475574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637981792119465575" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_637981792119475574" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_637981792119475574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637981792119465575" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_637981792119475574" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_637981792119475574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637981792119465575" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_637981792119475574" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_637981792119475574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637981792119465575" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings_637981792119475574" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange" xlink:label="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_637981792119475574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637981792119465575" xlink:to="dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange_637981792119475574" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_6379817921194755741" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_637981792119465575" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_6379817921194755741" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails" xlink:type="extended" xlink:title="40501 - Disclosure - Trade Accounts Receivable - Trade Receivables (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReceivablesAbstract" xlink:label="us-gaap_ReceivablesAbstract_3" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent_637981792119475574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_3" xlink:to="us-gaap_AccountsReceivableGrossCurrent_637981792119475574" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637981792119475574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_3" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637981792119475574" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent_637981792119475574" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_3" xlink:to="us-gaap_AccountsReceivableNetCurrent_637981792119475574" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails" xlink:type="extended" xlink:title="40502 - Disclosure - Trade Accounts Receivable (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReceivablesAbstract" xlink:label="us-gaap_ReceivablesAbstract_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnbilledReceivablesCurrent" xlink:label="us-gaap_UnbilledReceivablesCurrent_637981792119485577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_1" xlink:to="us-gaap_UnbilledReceivablesCurrent_637981792119485577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PercentageOfAccountReceivable" xlink:label="dsgx_PercentageOfAccountReceivable_637981792119485577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_1" xlink:to="dsgx_PercentageOfAccountReceivable_637981792119485577" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" xlink:type="extended" xlink:title="40503 - Disclosure - Trade Accounts Receivable - Provision for Credit Losses (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReceivablesAbstract" xlink:label="us-gaap_ReceivablesAbstract_2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637981792119485577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_2" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_637981792119485577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_637981792119485577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_2" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_637981792119485577" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_637981792119485577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_2" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_637981792119485577" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_637981792119485577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_2" xlink:to="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange_637981792119485577" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_6379817921194855771" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReceivablesAbstract_2" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_6379817921194855771" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherReceivablesDetails" xlink:type="extended" xlink:title="40601 - Disclosure - Other Receivables (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_statement-statement-note-6-other-receivables-other-receivables-details" xlink:label="dsgx_statement-statement-note-6-other-receivables-other-receivables-details_1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions_637981792119485577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-6-other-receivables-other-receivables-details_1" xlink:to="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions_637981792119485577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent_637981792119485577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-6-other-receivables-other-receivables-details_1" xlink:to="us-gaap_OtherAssetsCurrent_637981792119485577" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent_637981792119485577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-6-other-receivables-other-receivables-details_1" xlink:to="us-gaap_OtherReceivablesNetCurrent_637981792119485577" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails" xlink:type="extended" xlink:title="40602 - Disclosure - Other Receivables - Additional Information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow_637981792119495581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="dsgx_AmountsRecoverableFromFundsHeldInEscrow_637981792119495581" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" xlink:type="extended" xlink:title="40801 - Disclosure - Property and Equipment (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_637981792119495581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_637981792119495581" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis_637981792119495581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_637981792119495581" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis_637981792119495581" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain_637981792119495581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis_637981792119495581" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain_637981792119495581" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember_637981792119535576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637981792119495581" xlink:to="us-gaap_ComputerEquipmentMember_637981792119535576" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember_637981792119545576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637981792119495581" xlink:to="us-gaap_FurnitureAndFixturesMember_637981792119545576" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember_637981792119545576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637981792119495581" xlink:to="us-gaap_LeaseholdImprovementsMember_637981792119545576" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_EquipmentInstalledWithCustomersMember" xlink:label="dsgx_EquipmentInstalledWithCustomersMember_637981792119545576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637981792119495581" xlink:to="dsgx_EquipmentInstalledWithCustomersMember_637981792119545576" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetUnderConstructionMember" xlink:label="us-gaap_AssetUnderConstructionMember_637981792119545576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain_637981792119495581" xlink:to="us-gaap_AssetUnderConstructionMember_637981792119545576" order="5" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems_637981792119545576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_637981792119495581" xlink:to="us-gaap_PropertyPlantAndEquipmentLineItems_637981792119545576" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_637981792119545576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems_637981792119545576" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_637981792119545576" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_637981792119545576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems_637981792119545576" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_637981792119545576" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_637981792119545576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentLineItems_637981792119545576" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_637981792119545576" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" xlink:type="extended" xlink:title="40901 - Disclosure - Intangible Assets (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="IntangibleAssetsNetExcludingGoodwillAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_637981792119545576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_637981792119545576" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637981792119545576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_637981792119545576" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637981792119545576" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119545576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_637981792119545576" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119545576" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember_637981792119545576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119545576" xlink:to="us-gaap_CustomerRelationshipsMember_637981792119545576" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember_637981792119555577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119545576" xlink:to="us-gaap_DevelopedTechnologyRightsMember_637981792119555577" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember_637981792119555577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119545576" xlink:to="us-gaap_TradeNamesMember_637981792119555577" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember_637981792119555577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_637981792119545576" xlink:to="us-gaap_NoncompeteAgreementsMember_637981792119555577" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_637981792119555577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_637981792119545576" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems_637981792119555577" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_637981792119555577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems_637981792119555577" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_637981792119555577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_637981792119555577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems_637981792119555577" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_637981792119555577" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_637981792119555577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems_637981792119555577" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_637981792119555577" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" xlink:type="extended" xlink:title="40902 - Disclosure - Intangible Assets - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract" xlink:label="IntangibleAssetsNetExcludingGoodwillAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_637981792119555577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_637981792119555577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_637981792119555577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_637981792119555577" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_637981792119555577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_637981792119555577" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_637981792119565577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_637981792119565577" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_637981792119565577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_637981792119565577" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_637981792119565577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_637981792119565577" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" xlink:label="dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour_637981792119565577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour_637981792119565577" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_637981792119565577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_637981792119565577" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_637981792119565577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IntangibleAssetsNetExcludingGoodwillAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_637981792119565577" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureGoodwillDetails" xlink:type="extended" xlink:title="41001 - Disclosure - Goodwill (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_GoodwillDisclosureAbstract" xlink:label="GoodwillDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable_637981792119565577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GoodwillDisclosureAbstract" xlink:to="us-gaap_ScheduleOfGoodwillTable_637981792119565577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637981792119565577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable_637981792119565577" xlink:to="us-gaap_BusinessAcquisitionAxis_637981792119565577" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119565577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637981792119565577" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119565577" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember_637981792119565577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119565577" xlink:to="dsgx_VisualComplianceMember_637981792119565577" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember_637981792119565577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119565577" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember_637981792119565577" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_QuestawebMember" xlink:label="dsgx_QuestawebMember_637981792119565577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119565577" xlink:to="dsgx_QuestawebMember_637981792119565577" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PortrixMember" xlink:label="dsgx_PortrixMember_637981792119565577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119565577" xlink:to="dsgx_PortrixMember_637981792119565577" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_GreenmileMember" xlink:label="dsgx_GreenmileMember_637981792119575578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119565577" xlink:to="dsgx_GreenmileMember_637981792119575578" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NetChbLlcMember" xlink:label="dsgx_NetChbLlcMember_637981792119575578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119565577" xlink:to="dsgx_NetChbLlcMember_637981792119575578" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_FoxtrotMember" xlink:label="dsgx_FoxtrotMember_637981792119575578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119565577" xlink:to="dsgx_FoxtrotMember_637981792119575578" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_XpsMember" xlink:label="dsgx_XpsMember_637981792119575578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119565577" xlink:to="dsgx_XpsMember_637981792119575578" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems_637981792119575578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable_637981792119565577" xlink:to="us-gaap_GoodwillLineItems_637981792119575578" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_637981792119575578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems_637981792119575578" xlink:to="us-gaap_Goodwill_637981792119575578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod_637981792119575578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems_637981792119575578" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod_637981792119575578" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments_637981792119575578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems_637981792119575578" xlink:to="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments_637981792119575578" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_6379817921195755781" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems_637981792119575578" xlink:to="us-gaap_Goodwill_6379817921195755781" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" xlink:type="extended" xlink:title="41101 - Disclosure - Accrued Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:label="us-gaap_AccruedLiabilitiesCurrentAbstract_1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_637981792119575578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccruedLiabilitiesCurrentAbstract_1" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_637981792119575578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent_637981792119575578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccruedLiabilitiesCurrentAbstract_1" xlink:to="us-gaap_AccruedProfessionalFeesCurrent_637981792119575578" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent_637981792119575578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccruedLiabilitiesCurrentAbstract_1" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent_637981792119575578" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent_637981792119585576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccruedLiabilitiesCurrentAbstract_1" xlink:to="us-gaap_AccruedLiabilitiesCurrent_637981792119585576" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLongTermDebtDetails" xlink:type="extended" xlink:title="41201 - Disclosure - Long-term Debt (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="DebtDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable_637981792119585576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtDisclosureAbstract" xlink:to="us-gaap_DebtInstrumentTable_637981792119585576" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis_637981792119585576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637981792119585576" xlink:to="us-gaap_CreditFacilityAxis_637981792119585576" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain_637981792119585576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis_637981792119585576" xlink:to="us-gaap_CreditFacilityDomain_637981792119585576" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_RevolvingOperatingCreditFacilityMember" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember_637981792119585576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityDomain_637981792119585576" xlink:to="dsgx_RevolvingOperatingCreditFacilityMember_637981792119585576" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:label="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_637981792119585576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityDomain_637981792119585576" xlink:to="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_637981792119585576" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember_637981792119585576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityDomain_637981792119585576" xlink:to="dsgx_SeniorSecuredCreditFacilityMember_637981792119585576" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis_637981792119585576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637981792119585576" xlink:to="us-gaap_DebtInstrumentAxis_637981792119585576" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain_637981792119585576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis_637981792119585576" xlink:to="us-gaap_DebtInstrumentNameDomain_637981792119585576" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember_6379817921195855761" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentNameDomain_637981792119585576" xlink:to="dsgx_SeniorSecuredCreditFacilityMember_6379817921195855761" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637981792119585576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637981792119585576" xlink:to="srt_RangeAxis_637981792119585576" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637981792119585576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637981792119585576" xlink:to="srt_RangeMember_637981792119585576" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637981792119585576" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637981792119585576" xlink:to="srt_MaximumMember_637981792119585576" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637981792119595579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637981792119585576" xlink:to="srt_MinimumMember_637981792119595579" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis_637981792119595579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637981792119585576" xlink:to="us-gaap_VariableRateAxis_637981792119595579" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain_637981792119595579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis_637981792119595579" xlink:to="us-gaap_VariableRateDomain_637981792119595579" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember_637981792119595579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateDomain_637981792119595579" xlink:to="dsgx_CanadaOrUsPrimeRateBaOrLiborMember_637981792119595579" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems_637981792119595579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable_637981792119585576" xlink:to="us-gaap_DebtInstrumentLineItems_637981792119595579" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_637981792119595579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637981792119595579" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_637981792119595579" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentTerm" xlink:label="us-gaap_DebtInstrumentTerm_637981792119595579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637981792119595579" xlink:to="us-gaap_DebtInstrumentTerm_637981792119595579" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_637981792119595579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637981792119595579" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_637981792119595579" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_637981792119595579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637981792119595579" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_637981792119595579" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_637981792119595579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637981792119595579" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_637981792119595579" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit_637981792119595579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637981792119595579" xlink:to="us-gaap_LineOfCredit_637981792119595579" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount_637981792119595579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems_637981792119595579" xlink:to="us-gaap_LettersOfCreditOutstandingAmount_637981792119595579" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLeasesDetails" xlink:type="extended" xlink:title="41301 - Disclosure - Leases (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="us-gaap_LesseeLeaseDescriptionTable_637981792119605577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeLeaseDescriptionTable_637981792119605577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637981792119605577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionTable_637981792119605577" xlink:to="srt_RangeAxis_637981792119605577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637981792119605577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637981792119605577" xlink:to="srt_RangeMember_637981792119605577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637981792119605577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637981792119605577" xlink:to="srt_MaximumMember_637981792119605577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems_637981792119605577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionTable_637981792119605577" xlink:to="us-gaap_LesseeLeaseDescriptionLineItems_637981792119605577" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_637981792119605577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_637981792119605577" xlink:to="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_637981792119605577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm_637981792119605577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LesseeLeaseDescriptionLineItems_637981792119605577" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm_637981792119605577" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" xlink:type="extended" xlink:title="41302 - Disclosure - Leases - Components of Operating Lease Expense (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost_637981792119605577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeaseCost_637981792119605577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost_637981792119605577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_ShortTermLeaseCost_637981792119605577" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost_637981792119605577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LeaseCost_637981792119605577" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments_637981792119615633" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeasePayments_637981792119615633" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_637981792119615633" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability_637981792119615633" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_637981792119615633" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_637981792119615633" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_637981792119615633" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_637981792119615633" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" xlink:type="extended" xlink:title="41303 - Disclosure - Leases - Maturities of Operating Lease Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear_637981792119615633" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear_637981792119615633" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_637981792119615633" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_637981792119615633" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_637981792119615633" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_637981792119615633" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_637981792119615633" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_637981792119615633" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_637981792119615633" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_637981792119615633" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour" xlink:label="dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour_637981792119615633" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour_637981792119615633" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_637981792119615633" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_637981792119615633" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_637981792119615633" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_637981792119615633" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability_637981792119615633" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeaseLiability_637981792119615633" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_637981792119625577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_637981792119625577" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_637981792119625577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_637981792119625577" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" xlink:type="extended" xlink:title="41401 - Disclosure - Commitments, Contingencies and Guarantees (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xlink:label="CommitmentsContingenciesAndGuaranteesDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesTable" xlink:label="us-gaap_LossContingenciesTable_637981792119625577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CommitmentsContingenciesAndGuaranteesDisclosureAbstract" xlink:to="us-gaap_LossContingenciesTable_637981792119625577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis_637981792119625577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_637981792119625577" xlink:to="us-gaap_BusinessAcquisitionAxis_637981792119625577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119625577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis_637981792119625577" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119625577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember" xlink:label="dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_637981792119625577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain_637981792119625577" xlink:to="dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_637981792119625577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LossContingenciesLineItems" xlink:label="us-gaap_LossContingenciesLineItems_637981792119625577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesTable_637981792119625577" xlink:to="us-gaap_LossContingenciesLineItems_637981792119625577" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_637981792119625577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637981792119625577" xlink:to="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized_637981792119625577" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_637981792119625577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637981792119625577" xlink:to="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized_637981792119625577" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_637981792119625577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637981792119625577" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld_637981792119625577" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_637981792119625577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637981792119625577" xlink:to="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares_637981792119625577" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_637981792119625577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637981792119625577" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh_637981792119625577" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_637981792119625577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637981792119625577" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets_637981792119625577" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_637981792119635578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesLineItems_637981792119625577" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_637981792119635578" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureShareCapitalDetails" xlink:type="extended" xlink:title="41501 - Disclosure - Share Capital (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EquityAbstract" xlink:label="EquityAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfStockByClassTable" xlink:label="us-gaap_ScheduleOfStockByClassTable_637981792119635578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAbstract" xlink:to="us-gaap_ScheduleOfStockByClassTable_637981792119635578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis_637981792119635578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfStockByClassTable_637981792119635578" xlink:to="us-gaap_SubsidiarySaleOfStockAxis_637981792119635578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain_637981792119635578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis_637981792119635578" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain_637981792119635578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShelfProspectusMember" xlink:label="dsgx_ShelfProspectusMember_637981792119635578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain_637981792119635578" xlink:to="dsgx_ShelfProspectusMember_637981792119635578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_The2020BaseShelfProspectusMember" xlink:label="dsgx_The2020BaseShelfProspectusMember_637981792119635578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain_637981792119635578" xlink:to="dsgx_The2020BaseShelfProspectusMember_637981792119635578" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_NcibMember" xlink:label="dsgx_NcibMember_637981792119635578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain_637981792119635578" xlink:to="dsgx_NcibMember_637981792119635578" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfStockLineItems" xlink:label="us-gaap_ClassOfStockLineItems_637981792119635578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfStockByClassTable_637981792119635578" xlink:to="us-gaap_ClassOfStockLineItems_637981792119635578" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShelfProspectusPeriod" xlink:label="dsgx_ShelfProspectusPeriod_637981792119635578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems_637981792119635578" xlink:to="dsgx_ShelfProspectusPeriod_637981792119635578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShelfProspectusMaximumAmount" xlink:label="dsgx_ShelfProspectusMaximumAmount_637981792119635578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems_637981792119635578" xlink:to="dsgx_ShelfProspectusMaximumAmount_637981792119635578" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharesIssuedPricePerShare" xlink:label="us-gaap_SharesIssuedPricePerShare_637981792119635578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems_637981792119635578" xlink:to="us-gaap_SharesIssuedPricePerShare_637981792119635578" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_637981792119635578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems_637981792119635578" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_637981792119635578" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_637981792119635578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems_637981792119635578" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_637981792119635578" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased" xlink:label="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_637981792119645578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems_637981792119635578" xlink:to="us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased_637981792119645578" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_MaximumPercentageOfSharesToBeRepurchased" xlink:label="dsgx_MaximumPercentageOfSharesToBeRepurchased_637981792119645578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems_637981792119635578" xlink:to="dsgx_MaximumPercentageOfSharesToBeRepurchased_637981792119645578" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureEarningsPerShareDetails" xlink:type="extended" xlink:title="41601 - Disclosure - Earnings Per Share (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_637981792119645578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_637981792119645578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_637981792119645578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_637981792119645578" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_637981792119645578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain_637981792119645578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_637981792119645578" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain_637981792119645578" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember_637981792119645578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain_637981792119645578" xlink:to="us-gaap_EmployeeStockOptionMember_637981792119645578" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_StockOptionsTreasuryStockMethodMember" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember_637981792119645578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain_637981792119645578" xlink:to="dsgx_StockOptionsTreasuryStockMethodMember_637981792119645578" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember_637981792119645578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain_637981792119645578" xlink:to="dsgx_PSUsAndRSUsMember_637981792119645578" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasicLineItems" xlink:label="us-gaap_EarningsPerShareBasicLineItems_637981792119645578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_637981792119645578" xlink:to="us-gaap_EarningsPerShareBasicLineItems_637981792119645578" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_637981792119645578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_637981792119645578" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_637981792119645578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" xlink:type="extended" xlink:title="41602 - Disclosure - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_637981792119655581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_637981792119655581" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_637981792119655581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_637981792119655581" xlink:to="us-gaap_AwardTypeAxis_637981792119655581" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119655581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_637981792119655581" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119655581" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember_637981792119655581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119655581" xlink:to="us-gaap_EmployeeStockOptionMember_637981792119655581" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_637981792119655581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119655581" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_637981792119655581" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasicLineItems" xlink:label="us-gaap_EarningsPerShareBasicLineItems_637981792119655581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable_637981792119655581" xlink:to="us-gaap_EarningsPerShareBasicLineItems_637981792119655581" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss_637981792119655581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_637981792119655581" xlink:to="us-gaap_NetIncomeLoss_637981792119655581" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_637981792119655581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_637981792119655581" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_637981792119655581" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_637981792119655581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_637981792119655581" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_637981792119655581" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_637981792119655581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_637981792119655581" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_637981792119655581" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic_637981792119655581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_637981792119655581" xlink:to="us-gaap_EarningsPerShareBasic_637981792119655581" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted_637981792119655581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareBasicLineItems_637981792119655581" xlink:to="us-gaap_EarningsPerShareDiluted_637981792119655581" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" xlink:type="extended" xlink:title="41701 - Disclosure - Stock-Based Compensation Plans - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119665578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119665578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis_637981792119665578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119665578" xlink:to="us-gaap_PlanNameAxis_637981792119665578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain_637981792119665578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis_637981792119665578" xlink:to="us-gaap_PlanNameDomain_637981792119665578" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareholderApprovedStockOptionsPlanMember" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember_637981792119665578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_637981792119665578" xlink:to="dsgx_ShareholderApprovedStockOptionsPlanMember_637981792119665578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember_637981792119665578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_637981792119665578" xlink:to="dsgx_DeferredShareUnitPlanMember_637981792119665578" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CashSettledRestrictedShareUnitMember" xlink:label="dsgx_CashSettledRestrictedShareUnitMember_637981792119665578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_637981792119665578" xlink:to="dsgx_CashSettledRestrictedShareUnitMember_637981792119665578" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_637981792119665578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119665578" xlink:to="us-gaap_AwardTypeAxis_637981792119665578" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119665578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_637981792119665578" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119665578" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember_637981792119665578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119665578" xlink:to="us-gaap_EmployeeStockOptionMember_637981792119665578" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember_637981792119665578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119665578" xlink:to="us-gaap_PerformanceSharesMember_637981792119665578" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_637981792119675584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119665578" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_637981792119675584" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119665578" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_637981792119675584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_637981792119675584" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_637981792119675584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_637981792119675584" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637981792119675584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637981792119675584" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_637981792119675584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_637981792119675584" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_637981792119675584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_637981792119675584" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_637981792119675584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_637981792119675584" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_637981792119675584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_637981792119675584" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_637981792119685577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_637981792119685577" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637981792119685577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637981792119685577" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_637981792119685577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_637981792119685577" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_637981792119685577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_637981792119685577" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsOutstandingNumber" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber_637981792119685577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="dsgx_DeferredShareUnitsOutstandingNumber_637981792119685577" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent_637981792119685577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent_637981792119685577" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsGrantsInPeriod" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod_637981792119685577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="dsgx_DeferredShareUnitsGrantsInPeriod_637981792119685577" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_637981792119685577" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="dsgx_DeferredShareUnitsRedeemedAndSettledInCash_637981792119685577" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_DeferredShareUnitsCompensationExpense" xlink:label="dsgx_DeferredShareUnitsCompensationExpense_637981792119695580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="dsgx_DeferredShareUnitsCompensationExpense_637981792119695580" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_637981792119695580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119675584" xlink:to="dsgx_CashSettledRestrictedShareUnitsCompensationExpense_637981792119695580" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" xlink:type="extended" xlink:title="41702 - Disclosure - Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119695580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119695580" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis_637981792119695580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119695580" xlink:to="us-gaap_IncomeStatementLocationAxis_637981792119695580" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain_637981792119695580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis_637981792119695580" xlink:to="us-gaap_IncomeStatementLocationDomain_637981792119695580" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember_637981792119695580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_637981792119695580" xlink:to="us-gaap_CostOfSalesMember_637981792119695580" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember_637981792119705578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_637981792119695580" xlink:to="us-gaap_SellingAndMarketingExpenseMember_637981792119705578" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember_637981792119705578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_637981792119695580" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember_637981792119705578" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_637981792119705578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain_637981792119695580" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember_637981792119705578" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119705578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119695580" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119705578" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_637981792119705578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119705578" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_637981792119705578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" xlink:type="extended" xlink:title="41703 - Disclosure - Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_637981792119705578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_637981792119705578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_637981792119705578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_637981792119705578" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_637981792119705578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_637981792119705578" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_637981792119705578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_637981792119705578" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" xlink:type="extended" xlink:title="41704 - Disclosure - Stock-Based Compensation Plans - Summary of Option Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_637981792119715578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_637981792119715578" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_637981792119715578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_637981792119715578" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_637981792119715578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_637981792119715578" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_637981792119715578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_637981792119715578" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_637981792119715578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_637981792119715578" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_637981792119715578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_637981792119715578" order="6" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_637981792119715578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_637981792119715578" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637981792119715578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_637981792119715578" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_637981792119715578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_637981792119715578" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_637981792119715578" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_637981792119715578" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_637981792119725584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_637981792119725584" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_637981792119725584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_637981792119725584" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637981792119725584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637981792119725584" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_637981792119725584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_637981792119725584" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_637981792119725584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_637981792119725584" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_637981792119725584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_637981792119725584" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_637981792119725584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_637981792119725584" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_637981792119725584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_637981792119725584" order="18" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_637981792119725584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_637981792119725584" order="19" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" xlink:type="extended" xlink:title="41705 - Disclosure - Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119735579" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119735579" xlink:to="us-gaap_AwardTypeAxis_637981792119735579" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_637981792119735579" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119735579" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119735579" xlink:to="us-gaap_PerformanceSharesMember_637981792119735579" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119735579" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_637981792119735579" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_637981792119735579" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637981792119735579" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_637981792119735579" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares_637981792119735579" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue_637981792119735579" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue_637981792119735579" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_637981792119735579" order="8" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_637981792119735579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_637981792119735579" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_637981792119745590" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_637981792119745590" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637981792119745590" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637981792119745590" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_637981792119745590" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_637981792119745590" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_637981792119745590" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_637981792119745590" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_637981792119745590" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_637981792119745590" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_637981792119745590" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_637981792119745590" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_637981792119745590" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_637981792119745590" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_637981792119745590" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_637981792119745590" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637981792119745590" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637981792119745590" order="18" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_637981792119745590" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_637981792119745590" order="19" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_637981792119755580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_637981792119755580" order="20" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_6379817921197555801" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119735579" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_6379817921197555801" order="21" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" xlink:type="extended" xlink:title="41706 - Disclosure - Stock-Based Compensation Plans - Summary of Nonvested Share (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119755580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119755580" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis_637981792119755580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119755580" xlink:to="us-gaap_PlanNameAxis_637981792119755580" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain_637981792119755580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis_637981792119755580" xlink:to="us-gaap_PlanNameDomain_637981792119755580" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareholderApprovedStockOptionsPlanMember" xlink:label="dsgx_ShareholderApprovedStockOptionsPlanMember_637981792119755580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain_637981792119755580" xlink:to="dsgx_ShareholderApprovedStockOptionsPlanMember_637981792119755580" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119755580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119755580" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119755580" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_637981792119755580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119755580" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_637981792119755580" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637981792119755580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119755580" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637981792119755580" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares_637981792119755580" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119755580" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares_637981792119755580" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_637981792119765591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119755580" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue_637981792119765591" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_637981792119765591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119755580" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares_637981792119765591" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_637981792119765591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119755580" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_637981792119765591" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" xlink:type="extended" xlink:title="41707 - Disclosure - Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119765591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119765591" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis_637981792119765591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119765591" xlink:to="us-gaap_AwardTypeAxis_637981792119765591" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119765591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis_637981792119765591" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119765591" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_637981792119765591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_637981792119765591" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_637981792119765591" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_637981792119765591" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_637981792119765591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_637981792119765591" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_637981792119765591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_637981792119765591" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_6379817921197655911" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding_6379817921197655911" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_637981792119765591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_637981792119765591" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637981792119775584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_637981792119775584" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_637981792119775584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_637981792119775584" order="6" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_637981792119775584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_637981792119775584" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_637981792119775584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_637981792119775584" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637981792119775584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_637981792119775584" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_637981792119775584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_637981792119775584" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637981792119775584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_637981792119775584" order="11" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_637981792119775584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_637981792119775584" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_637981792119775584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_637981792119775584" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_637981792119775584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable_637981792119775584" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_637981792119775584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue_637981792119775584" order="15" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_637981792119775584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm_637981792119775584" order="16" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_637981792119785581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_637981792119765591" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable_637981792119785581" order="17" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" xlink:type="extended" xlink:title="41708 - Disclosure - Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife_637981792119785581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardsWeightedAverageContractualLife_637981792119785581" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardsGrantsInPeriod" xlink:label="dsgx_CRSUAwardsGrantsInPeriod_637981792119785581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardsGrantsInPeriod_637981792119785581" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardsVestedAndSettledInCash" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash_637981792119785581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardsVestedAndSettledInCash_637981792119785581" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardsForfeitedInPeriod" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod_637981792119785581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardsForfeitedInPeriod_637981792119785581" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardsOutstandingNumber" xlink:label="dsgx_CRSUAwardsOutstandingNumber_637981792119785581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardsOutstandingNumber_637981792119785581" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardNonvestedNumber" xlink:label="dsgx_CRSUAwardNonvestedNumber_637981792119785581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardNonvestedNumber_637981792119785581" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife_637981792119785581" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife_637981792119785581" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" xlink:type="extended" xlink:title="41801 - Disclosure - Income Taxes - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_IncomeTaxDisclosureTable" xlink:label="dsgx_IncomeTaxDisclosureTable_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="dsgx_IncomeTaxDisclosureTable_637981792119795582" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureTable_637981792119795582" xlink:to="srt_RangeAxis_637981792119795582" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis_637981792119795582" xlink:to="srt_RangeMember_637981792119795582" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637981792119795582" xlink:to="srt_MinimumMember_637981792119795582" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember_637981792119795582" xlink:to="srt_MaximumMember_637981792119795582" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureTable_637981792119795582" xlink:to="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_637981792119795582" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="us-gaap_ChangeInAccountingPrincipleMember_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_637981792119795582" xlink:to="us-gaap_ChangeInAccountingPrincipleMember_637981792119795582" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember" xlink:label="dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ChangeInAccountingPrincipleMember_637981792119795582" xlink:to="dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember_637981792119795582" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_IncomeTaxDisclosureLineItems" xlink:label="dsgx_IncomeTaxDisclosureLineItems_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureTable_637981792119795582" xlink:to="dsgx_IncomeTaxDisclosureLineItems_637981792119795582" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureLineItems_637981792119795582" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations_637981792119795582" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureLineItems_637981792119795582" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit_637981792119795582" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureLineItems_637981792119795582" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_637981792119795582" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureLineItems_637981792119795582" xlink:to="us-gaap_UndistributedEarningsOfForeignSubsidiaries_637981792119795582" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_637981792119795582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureLineItems_637981792119795582" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_637981792119795582" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_637981792119805584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureLineItems_637981792119795582" xlink:to="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_637981792119805584" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit_637981792119805584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_IncomeTaxDisclosureLineItems_637981792119795582" xlink:to="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit_637981792119805584" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" xlink:type="extended" xlink:title="41901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="RevenueFromContractWithCustomerAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability_637981792119805584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerLiability_637981792119805584" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_637981792119805584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_637981792119805584" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_637981792119805584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue_637981792119805584" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_637981792119805584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_637981792119805584" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_637981792119805584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange_637981792119805584" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability_6379817921198055841" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerLiability_6379817921198055841" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="us-gaap_DeferredRevenueCurrent_637981792119805584" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DeferredRevenueCurrent_637981792119805584" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_637981792119815677" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent_637981792119815677" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet_637981792119815677" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerAssetNet_637981792119815677" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="2" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" xlink:label="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606_637981792119815677" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606_637981792119815677" order="10" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable_637981792119815677" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable_637981792119815677" order="11" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet_637981792119815677" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet_637981792119815677" order="12" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_637981792119815677" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange_637981792119815677" order="13" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet_6379817921198156771" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerAssetNet_6379817921198156771" order="14" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss" xlink:type="extended" xlink:title="41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_2" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_637981792119815677" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract_2" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_637981792119815677" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_637981792119815677" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_637981792119815677" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_637981792119815677" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_637981792119815677" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_637981792119815677" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_637981792119815677" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_637981792119825591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_637981792119815677" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_637981792119825591" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage_637981792119825591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_637981792119815677" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage_637981792119825591" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_637981792119825591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_637981792119815677" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_637981792119825591" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetails" xlink:type="extended" xlink:title="41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedContractCostNet" xlink:label="us-gaap_CapitalizedContractCostNet_637981792119825591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_CapitalizedContractCostNet_637981792119825591" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedContractCostAmortization" xlink:label="us-gaap_CapitalizedContractCostAmortization_637981792119825591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_CapitalizedContractCostAmortization_637981792119825591" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" xlink:type="extended" xlink:title="42001 - Disclosure - Other Charges - Components of Other Charges (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherIncomeAndExpensesAbstract" xlink:label="OtherIncomeAndExpensesAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_637981792119825591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts_637981792119825591" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637981792119825591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_637981792119825591" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges_637981792119825591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_RestructuringCharges_637981792119825591" order="3" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherCostAndExpenseOperating" xlink:label="us-gaap_OtherCostAndExpenseOperating_637981792119825591" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OtherIncomeAndExpensesAbstract" xlink:to="us-gaap_OtherCostAndExpenseOperating_637981792119825591" order="4" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" xlink:type="extended" xlink:title="42101 - Disclosure - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SupplementalCashFlowElementsAbstract" xlink:label="us-gaap_SupplementalCashFlowElementsAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_637981792119835582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_637981792119835582" order="1" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_637981792119835582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables_637981792119835582" order="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_637981792119835582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_637981792119835582" order="3" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories_637981792119835582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInInventories_637981792119835582" order="4" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_637981792119835582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_637981792119835582" order="5" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities_637981792119835582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities_637981792119835582" order="6" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes_637981792119835582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxes_637981792119835582" order="7" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_637981792119835582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities_637981792119835582" order="8" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_637981792119835582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue_637981792119835582" order="9" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital_637981792119835582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowElementsAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital_637981792119835582" order="10" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" priority="1" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" xlink:type="extended" xlink:title="42201 - Disclosure - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637981792119845582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637981792119845582" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis_637981792119845582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637981792119845582" xlink:to="srt_StatementGeographicalAxis_637981792119845582" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain_637981792119845582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis_637981792119845582" xlink:to="srt_SegmentGeographicalDomain_637981792119845582" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2021/country-2021.xsd#country_US" xlink:label="country_US_637981792119845582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637981792119845582" xlink:to="country_US_637981792119845582" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember_637981792119845582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637981792119845582" xlink:to="us-gaap_EMEAMember_637981792119845582" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2021/country-2021.xsd#country_CA" xlink:label="country_CA_637981792119845582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637981792119845582" xlink:to="country_CA_637981792119845582" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember_637981792119845582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637981792119845582" xlink:to="srt_AsiaPacificMember_637981792119845582" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems_637981792119845582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637981792119845582" xlink:to="us-gaap_SegmentReportingInformationLineItems_637981792119845582" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637981792119845582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_637981792119845582" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637981792119845582" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" xlink:type="extended" xlink:title="42202 - Disclosure - Segmented Information - Segmented Revenue by Revenue Type (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637981792119845582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637981792119845582" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis_637981792119845582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637981792119845582" xlink:to="srt_ProductOrServiceAxis_637981792119845582" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain_637981792119845582" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis_637981792119845582" xlink:to="srt_ProductsAndServicesDomain_637981792119845582" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ServiceMember" xlink:label="us-gaap_ServiceMember_637981792119855583" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_637981792119845582" xlink:to="us-gaap_ServiceMember_637981792119855583" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="dsgx-20220731.xsd#dsgx_ProfessionalServicesAndOtherMember" xlink:label="dsgx_ProfessionalServicesAndOtherMember_637981792119855583" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_637981792119845582" xlink:to="dsgx_ProfessionalServicesAndOtherMember_637981792119855583" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LicenseMember" xlink:label="us-gaap_LicenseMember_637981792119855583" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain_637981792119845582" xlink:to="us-gaap_LicenseMember_637981792119855583" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems_637981792119855583" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637981792119845582" xlink:to="us-gaap_SegmentReportingInformationLineItems_637981792119855583" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637981792119855583" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_637981792119855583" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax_637981792119855583" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" xlink:type="extended" xlink:title="42203 - Disclosure - Segmented Information - Long-lived Assets by Geographical Location (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637981792119855583" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637981792119855583" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis_637981792119855583" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637981792119855583" xlink:to="srt_StatementGeographicalAxis_637981792119855583" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain_637981792119855583" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis_637981792119855583" xlink:to="srt_SegmentGeographicalDomain_637981792119855583" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2021/country-2021.xsd#country_US" xlink:label="country_US_637981792119855583" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637981792119855583" xlink:to="country_US_637981792119855583" order="1" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember_637981792119855583" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637981792119855583" xlink:to="us-gaap_EMEAMember_637981792119855583" order="2" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2021/country-2021.xsd#country_CA" xlink:label="country_CA_637981792119855583" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637981792119855583" xlink:to="country_CA_637981792119855583" order="3" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember_637981792119855583" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain_637981792119855583" xlink:to="srt_AsiaPacificMember_637981792119855583" order="4" use="optional" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingInformationLineItems" xlink:label="us-gaap_SegmentReportingInformationLineItems_637981792119855583" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_637981792119855583" xlink:to="us-gaap_SegmentReportingInformationLineItems_637981792119855583" order="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NoncurrentAssets" xlink:label="us-gaap_NoncurrentAssets_637981792119865579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingInformationLineItems_637981792119855583" xlink:to="us-gaap_NoncurrentAssets_637981792119865579" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </presentationLink>
  <presentationLink xlink:role="http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails" xlink:type="extended" xlink:title="42204 - Disclosure - Segmented Information - Additional information (Details)" xmlns="http://www.xbrl.org/2003/linkbase">
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" />
    <loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments_637981792119865579" />
    <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_NumberOfReportableSegments_637981792119865579" order="1" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" priority="1" />
  </presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>9
<FILENAME>dsgx-20220731xex99d1001.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20220731xex99d1001.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  ," @," @,# P,$ P,$!0@%!00$
M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_
MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04
M%!04%!04%!04%!04%!04%!04%!04%!3_P  1" "! H(# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#]4Z*** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BDS1F@!:*** "BBB@
M HHHH ***3- "T4F:,T +129I: "BBB@ HHHH **0L!U('UI ZGH0: '4444
M %%%% !1110 444FX9QGF@!:*3</44M !1110 4444 %%%% !11574]2M=&T
MZZO[ZYBL[*UB::>XG<)'%&H)9F8\   DD^E %JBO*?V<_P!H+1_VD_"6L^*/
M#T$D>A6NM7.E6=Q*?FNXX0G[_;CY0Y8D \XQGDD#U:@ HHHH **2C- "T4F:
M6@ HHHH **** "BDS1F@!:*3-&: %HI,TM !1110 4444 %%)FC- "T4F:6@
M HHHH **** "BBFEU'\0_.@!U%(&!Z'-+0 44W>N<9&:-XQG(Q0 ZBD!S2T
M%%%% !1110 5\I_\%(_CWXS_ &=/@!9>*? NHPZ9K,NO6UBTTUK'< PO%.S#
M:X(SE%YZ\5]65\(_\%E?^33M-_[&FR_]$7- 'P,/^"KW[2!_YF^P_P#!':?_
M !%'_#UW]I'_ *&ZP_\ !':?_&ZY7_@G5\-O#/Q:_:N\*^&?%^CP:[H5U;WS
M36-SNV.4M9'0G:0>& /7M7[$_P##O;]G;'_)*M%_[ZF_^.4 ?EIH?_!77]H3
M2+I);S4M!UN,')AOM'1%8>F8BA_6OJOX$_\ !9WPMXFO;?3/BAX8D\)RR,%.
MLZ2[75F">[Q$>8@]QOKV?XA_\$J/V??&]E+'I_AJ\\(7C*0EYHFH2@J>Q\N4
MNA_*OS*_;$_X)W^-_P!E16UZ&<>+/ CR;%UNUA*26A)PJW,63LR< ."5)QR"
M0* /W@\+>*]&\;Z!8ZYH&IVFLZ/?1B:VOK*42Q2H>ZL.#_2M:OY^_P!AG]MK
M7_V4_'=O;7MS<:A\.]1F5=6TC)80YX-S /X9%ZD#AP,'G:1^^VAZU8^)-'L=
M5TRZBOM.OH$N;:YA;*2Q.H9'4]P00?QH O4444 >'_MK_%#Q#\&/V8?''C+P
MI=QV.OZ7! ]K<2P+,J%KF)&RC @_*[#D5^1!_P""K_[2&2!XOL/_  1VG_Q%
M?J9_P4J_Y,D^)_\ U[6O_I9!7XC_ +*WA;2?&_[27PVT#7;&/4M'U+7[2UN[
M.;.R:)I &4X(."/0T >V?\/7?VD?^ANL?_!':?\ QNC_ (>N_M(_]#=8?^".
MT_\ C=?J_P#\.]OV=O\ HE6B_P#?4W_QRC_AWM^SM_T2K1?^^IO_ (Y0!^?7
M[)W_  4<^._Q5_:,\ >$O$?B:SN]#U;5([6[@32+:)GC(8D!U0$=.HK]C%.5
M!]J\0\'?L2_ _P  >*--\1>'OASI.EZWILPGM+R$R[X9!T89<C//<5[>!@4
M+1110 A.!7YS_M=_\%;=)^%VO:AX1^%6G6?BO6K-F@N==O6+:?!(,ADB5"#,
M5/5MRKD<%J]X_P""DOQ?U+X-_LF^*=0T:=[35]6>+1;:YC;:T7GDB1E/9O*6
M3!'0D'M7X;? CX1ZA\>OC!X6\!:9<)9W6MW@M_M,B[E@C +22$=]J*QQWQCO
M0!ZYXJ_X*1?M%>++QYY/B/?:;&3\MOI-O#:QI[#:FX_B35?0/^"BW[1?AR[2
M>'XG:I=!3DQZA#!<HWL0\9_2OUM^&'_!-#X _#K0;:SG\%6_BN_5 )M3\0.U
MQ+,V.6V9$:#V51^-6O&G_!-7]G?QI9R1-\/;;19V'RW6B7,MK(A]0 Q0_BI%
M 'QS\ ?^"S^IV][;:;\7?#5O=63$*VN>'D,<L?\ M26[,5<>NQE/'"FOU5T#
M7+3Q-H6G:O8.\EC?V\=U \D;1LT;J&4E6 93@C@@$=Z_-;PI_P $<;7P?^T/
MX<UAO$D/B+X86DYO;FPU"/9?,\>&BMWVC9(C-C<PV_*"-O.:_3=5"J .!0 Z
MBBB@ K%\8^,]#^'_ (;O_$'B/5;71=%L(C-<WUY((XXU'J3W/0 <DX R:U+R
M[AL+6:YN94@MX4:2261@JHH&2Q)Z  $YK\$/V_OVUM5_:B^(MQIFCW<UM\.-
M&N&CTNR4E5O&!(-W*.[-SM!^ZI'<L2 ?4/[0_P#P6=>&]NM)^#OAV&:W0E!X
MA\01M^\_VHK8$$#T,ASZH*^-_%/_  4,_:'\67DEQ<_%#6+(,<B+2Q'9QK[
M1*OZDUZ+^Q%_P3=\0_M/VL7BWQ)>3^%?A\)"L=S'&&N]2*G#" -PJ Y!E;(R
M, -@X_4;P)_P3M_9]\!:?%;6_P -],U>5!\UWKNZ^ED/J?,)4'_=4#VH _&O
M0/V_OVA?#ETEQ;?%37KAE.=E_(EVA]BLJL*^K?@/_P %GO$^EW]MI_Q7\-VN
MN::S!7U?0H_L]W&,C+-"3Y<GT4I^-?>OBO\ 8"_9]\864MM=_"S0;3S 1YNE
M0M92+[AH2IS7Q_XY_P""+6FM\3]!N_"7BV5/ DUZIU?3]3YO;: 99A!*HQ(6
MQM&X*5W Y;% 'Z.?#7XD^'OB[X'TGQ=X5OQJ>@ZI%YUK<B-H]P!*D%6 ((8$
M$$=0:Z>LSPWX<TWPAH&G:)H]E%IVE:=;I:VMI N$AB10JJ!Z  5IT %%%% !
M112$XH "<#FOR#_X*E?MW_\ ":ZA??!WP#J6[P_9R^7XAU.U?B^F4_\ 'JC#
MK$A'SG^)ACHIW>Z?\%._V[Q\']#N?A;X%U#'C?4X,:GJ%N_S:3;./NJ1TGD4
M\=T4[N"5-?C"S%B23DF@#]QO^"/7/[(A_P"QAOO_ $&*ON&OA[_@CU_R:'_W
M,-]_Z##7W#0 4E+10!^6_P#P45_;L^,/[//[0Y\*>"?$%KINB?V1:W?D3:9!
M.WF.9-QW.I/\(XKY@_X>O?M(G_F;[#_P1VG_ ,;K>_X+"?\ )WI_[%^Q_G+7
ML'_!*+]F7X7_ !R^$GC'4_'?@W3_ !+?V>N"V@N+LR;HX_L\;;1M8<9)/XT
M>!+_ ,%7OVD0P)\6V# =CH=K@_\ CE>J?"/_ (+/?$30=6@A^(7AS2/$^C,P
M$L^EQ&RO4'<K\QC;'7:57/\ >%?H/-_P3P_9TGC*-\*]' /=))U/YB3-?FC_
M ,%-/V&_#O[,UUH'B_P()[;PGK5P]E-IEQ*TWV*Y"[UV.V6*.H;AB2"AY((
M /V#^#WQB\*?'?P%IWC#P;J::IHUZ" V-LD,@^_%*G5'4]5/L1D$$]M7XJ_\
M$=_C7?\ A#X_7GP_EN6;0_%=G*Z6[-\J7D"&1) .Q,8D4^OR^@K]JJ "J.MW
M,EEHU]<0G;+%!)(A(S@A21Q]15ZH[BWCNH)(94#Q2*4=3T((P10!^#K_ /!5
MS]I%6(_X2ZPX/_0#M/\ XBD_X>N_M(_]#=8_^".T_P#C=?J__P .]OV=O^B5
M:+^<W_QR@_\ !/;]G;!_XM5HO_?4W_QR@#\GS_P5>_:0!P?%]A_X([3_ .(I
M?^'KW[2/_0W6'_@CM/\ XW7GW[>W@'P_\,/VL_'WAGPMI<&BZ#82VJVUC;YV
M1!K2%VQDD\LS'KWK[V_X)I_LE?"'XQ?LQ6?B'QEX$TW7]:?5;R!KVY,F\HC*
M%7Y7 P,^E 'R5_P]=_:1_P"ANL/_  1VG_QNOLW_ ()C?MD_%7]I;XD^+](\
M?:W;:I8:=I"7=O'#I\-L5D,ZH3F-03P3P:^DO^'>W[.W_1*M%_[ZF_\ CE=S
M\*/V9?A?\#=5O=2\">#;#PU?7L(M[B>T,FZ2,,&"G<QXR ?PH ]/HHHH *_.
MS_@IY^V-\4OV9_'?@O3/ .MVVE6>IZ;-<W*3Z?#<EW6;:"#(I(X["OT3K\@/
M^"W/_)4OAM_V!KG_ -*!0!XN/^"KW[2)Z>+[ _\ <#M/_B*/^'KO[2/_ $-U
MA_X([3_XW7HG_!)7X _#WXZZM\2HO'OA:R\31Z;!8-:"\+_N2[3A\;6'7:O7
MTK]&_P#AWM^SM_T2K1?^^IO_ (Y0!^4'_#UW]I'_ *&ZP_\ !':?_&Z^^O\
M@EW^U3\1_P!INP^(DOQ U>WU5M'DL5L_(L8K;8)1.7SY:C=G8O7ICWKV7_AW
MM^SM_P!$JT7_ +ZF_P#CE>B_"3]GWX>? E-33P%X5LO#*ZF8S>"S+_OC'NV9
MW,>F]NGJ: /0Z*** "LCQ;XMT?P)X:U+Q!K^HV^DZ-IT+7%W>W3[8X8U'))_
MH.22 .36O7Y>_P#!:SXP:CIFB^!_AM8SO!8ZF9=8U)4;'G+&P2!#ZJ&,C8]5
M4]J .-_:(_X++>(M1U6ZTOX/Z+:Z3I4;%%UW6H?.NI\$_/'!G9&#VW[SCJ%Z
M5\IZI_P4&_:(UBZ:>;XIZW$S'.VU\JW0?140"MG]@#]D*#]K?XJWMAK%_-IW
MA70K=+W4WM"!/-N?;'#&2"%+$,2Q!P%.!DBOU_T#_@GS^SUX=TN.Q@^%NB72
M(H4S:@KW4S>Y>1B<T ?D/X-_X*;_ +17@ZY20^/'UR =;;6K&"X1O8MM5_R8
M5]\?LB_\%8=*^-7BG1_!/COPU)X?\4ZI.MK97VCJ]Q97,K<!63F2(D]\NO<E
M17H?Q1_X)3_ 3Q_I\RZ3H%UX)U)E/EWNB7;[5;MF&0LA'L #[BN,_8<_X)K3
M_LQ_&+Q#XQ\4:K8>))+2/[+X;GMD9"BR ^=/(C?<DV_NP 6&&<YY% 'NUWX=
MOG_:SL[(>,/%*:3)H,FOMI"ZJPM#.EY%$%\O'^KVL04S@YKYE_X7[\1W_9YU
M?PNOB[4/^$UO[.Z\667B)64W%OHD2SRSX;& 4GM_LP)'2XCK]%?L-O\ ;!=^
M1%]J$?E"?8-X3.=N[KC(!Q5,>&=(6+RQI=D(_(:UV"W3'DL<M'C'W2>2O0F@
M"71)WN=&L9I&W2201LS'N2H)J]354(H50%4#  Z"G4 %%%% !1110 5\(_\
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
MA7AWX"^$=3\)^"M6M]7^)=[&UNHLY!*FC@C!FE89 D /R1]<X+  <@'YV?\
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
M#\Z .*3X'?#B)U=/ 'A='4AE9=%M@01T(^2NV Q2;U_O#\Z4,#T(- "T444
M%%%>._M$_M7?#[]EZS\/W'CG4)[9=:O/LEO':0^=(J@9DG9 <^6F5W$9/S
M$T >PD9KP/\ :+_8A^%/[3-M--XGT%;+Q 4VQ^(=)Q!>H<8&Y@,2@>D@;VQ7
MK_@OQWX>^(WAVTU[PQK-EKNCW2[X;VPF66-AZ9'0CN#@CN*W=P]10!_//^V7
M^Q1XI_9"\56L=[<KKOA34W<:9KD,9C$A7DQ2ID[) #G&2&'(/! ^BO\ @CW^
MTGJOAOXIS?"+4[UY_#FOPS76F02OD6E[&ID8)GHLD:OD?WE4]2<_1'_!9OQS
MH&G?L^:#X6N;B&3Q#J6MPWEG:9!D2&&.0238ZA?G5,]RWL:_/W_@FCX?O-?_
M &T_AQ]C1B+*>XO9W'1(DMI=Q/L20O\ P(4 ?T$T4BC"@>U+0 4444 %%%%
M!1110 5\(_\ !97_ )-.TSD#_BJ;+K_UPN:^[JR/$WA'0_&FGK8>(=%T[7;%
M9!*+74[6.YB#@$!MK@C(!//7DT ?S(> _'_B3X8>);;Q#X4UF[T#6[976&^L
M9=DJ!U*L ?=20?K7JG_#<WQ__P"BL^)__ [_ .M7[Y?\,^?"[_HFWA#_ ,$-
MK_\ &Z/^&?/A=_T3;PA_X(;7_P"-T ?SV^*?VIOC%XVLVM-;^)OBK4+1QAK>
M35IA&P]"JL ?QJY\&/V2OBQ^T#JL,'A+PAJ%U:R,/,U:[B:WLH@>K-.X"GUP
M,L>P-?T)Z7\%_A_HDZSZ=X&\-:?,O(DM='MXV'XJ@-=A'$D2*B*%51@*!@#Z
M"@#Y;_8E_8/\-?LDZ'-?S31^(/'NH1".^UHQX2%.I@MP>5CSC+'YG(!.  !]
M3T44 %%%% 'S)_P4K_Y,D^)_;_1K7K_U^05^ WAOQ'JO@[Q#8:YHE]-IFK:?
M.MS:WEL^V2&13E64]B#7]0NN:#IGB?2I],UC3K35M-N !-9WT"S0R $$!D8$
M'D \CJ*X[_AGSX7?]$V\(?\ @AM?_C= 'X&_\-S?'_\ Z*SXG_\  [_ZU'_#
M<WQ__P"BL^)__ [_ .M7[Y?\,^?"[_HFWA#_ ,$-K_\ &Z/^&?/A=_T3;PA_
MX(;7_P"-T ?A_P#!G]M'XYZ[\8/ NFZA\4O$EU87FO6%O<02WN4DC>X164C'
M(()'XU^_R]#]:X>S^!'PUT^[@NK7X>>%+:Y@=98IH=$MD>-U.596"9!! ((K
MN: %HHHH ^(/^"GO[,OQ5_:+\#:(O@+48+[2]%>2ZNO"Q/E37LV"%E20G:[(
MI($;8^\Q!)(%?B^1XR^#7C%USK/@SQ/8/M8 RV5W <]/X6'2OZ?JY'X@?"#P
M1\5;,6OC#PGH_B6$#"C4[*.=D'^RS#*_@10!^#.C_P#!1C]HS1+,6L'Q.U.:
M,# :\M[>XD'_  -XRQ_$FO+/BE\=?B+\==0MY_''BS5?$\T1_<0WDQ,<1/7R
MXEPBD_[*BOW0O?\ @FW^SA?7/GO\,+&-R<E8+Z[C0_\  5E 'X5WWPX_9.^#
M_P );U+SPI\.]!TJ^CY2]%J)KA/]V63<P_ T ?G+_P $T?\ @GOXBG\:Z1\6
M?B1I,NC:1I;+=Z)I%]&4N+RXZQW$B'E(T^\H."S!3C:.?US P*,8I: "BBB@
M KYB_;3_ &&/"_[6_AV*X:5-!\<:?$4T[7%CW!EZ^3.HY>//3'*$DCJ0?IVB
M@#^;/XZ_LJ_$[]G+6)+/QKX8NK.TW;8=6MU,UA<#L4F4;>?[K88=P*7X>?M;
M?&7X4V267A;XBZ_IEC&,1V?VHSP(/18Y-RC\!7](=_I]KJEG+:WEO%=VLJ[9
M(9T#HX]"IR"/K7B7BG]AKX"^,[N2YU3X5^'3-(<L]G;&T+'U/DE* /Q9U/\
MX*'_ +1FK6S03_%+5XXV&";:*"!O^^DC!'YUPGA'6/BS\7?BAH^JZ1+XE\=>
M-+*[BO+27=-?SQR(X=&R2=H#*#G@5^YVD?\ !/7]G;0[A9K;X5:,[J<@7;S7
M*_\ ?,DC#]*]M\*^"?#W@;3A8>'-#TW0;$8Q;:9:1V\?_?* "@";PKJ%]J_A
MC2;[4]/?2=2N;2*:ZL)&#-;2L@+QD@D$JQ(R#VK4)P,T=!7P7_P4M_;H;X):
M!)\-? EYN^(6LPA;JZMSE])MG'!&.D\@/R#JH.[KMR >$_\ !4W]N\:_<:A\
M&/ &H9TV%C%XEU2V?BXD!YLT8?P*1^\(ZGY.@;/YA=:^J_@G_P $V/CC\<?)
MU#_A'QX4T:<A_P"U/$SM;;P>=RQ8,K>N=H!SUK[:^&7_  14\#Z3'#-XY\;:
MOXAN<9>VTF)+&#/IN;>[#W^6@#\>L$]J,9K^@_PI_P $W/V=?"4*+#\-[+49
M5ZS:K<SW;-]0[E?TKOK+]D?X*:=&$@^%'@U !CG1+=C^94T ?S98H((ZU_2#
MJG[&7P,UE"MU\)O")SWATF*(_F@!KR[QI_P2P_9W\7JY@\)77AR=A_KM&U*:
M/'T1RZ?^.T <M_P1Z_Y-#_[F&^_]!AK[AKR']E_]F_1_V6OAO+X+T+5+W5M-
M.HSW\<VH!!*OF!!L)0 '&SK@=:]>H **** /PW_X+!C/[7K8Q_R+]CW]Y:^K
MO^")G'P.\>_]C&O_ *2Q5]W^)/A-X(\8ZE_:&O\ @[P_KE_L$?VK4M+@N)=@
MZ+O=2<#)XSWK0\+>"/#O@>UFM?#F@Z7H%M,_FRPZ79QVR.^,;F"* 3@ 9/I0
M!MU^>/\ P5C_ &0/^%E^!_\ A;'A>RW^)_#EOMU6"!/FO=/7)+X'5X<D^Z%O
M[H%?H=3)H4N(GBE19(W!5D<9# \$$=Q0!_.G^QG^T]JG[*OQFT_Q-"9+CP_=
M8L];T^-N+BU+<LHZ>8A^=3Z@CHQK^AKPMXGTOQIX<TW7M$OH=2TC4;=+JTO+
M=MR31. 58'W!KE/^&?/A=_T3;PA_X(;7_P"-UV.B:%IOAG2[?3=(T^TTK3K<
M%8;.R@6&&($DD*B@ #))X'>@"_1110 4AZ&EI* /Y^/^"F(W?MO_ !.QC_7V
M??\ Z<;>OTR_X)$?\F>6'_8;O^G^^M?4NN?!KP#XGU6?4]9\#^&]6U*X(,UY
M?:1;S328  W.R$G  ')Z 5N^'/"VC>#]-&G:#I%AHE@':06FFVR6\08]3L0
M9/<XH U**** "BBB@ K\@/\ @MP,_%+X;=/^0-<]_P#IXK]?ZYOQ3\-?"/CF
MX@G\1^%M$\03P*4BDU33H;EHU)R0I=20,\X% '\VOPP^-WC[X+R:@_@?Q7J?
MA=]0"+=G39_+\X)NV;O7&YL?4UWG_#<WQ_\ ^BL^)_\ P._^M7[Y?\,^?"[_
M *)MX0_\$-K_ /&Z/^&?/A=_T3;PA_X(;7_XW0!^!O\ PW-\?_\ HK/B?_P.
M_P#K5]W?\$E?V@_B1\8_BGXWL/&_C35_$UG::+'/!!J-QYBQR&=5+ =C@X_&
MOT$_X9\^%W_1-O"'_@AM?_C=;?A;X9^$/ ]S-<^'/"NB:!<3H(Y9=+TZ&V>1
M0<A6**"1GG!H Z6BBB@ K\DO^"HG[(7QI\;_ !,OOB7IXD\<^%(X$@MM/TN)
MC<Z1 H)*&#)+J6+,9$R<L<A0!7ZVTF* /YB_ 'Q9\=_!S59;GPCXGUGPM>[L
M3#3[IX-Y'&)$!PWT8&O96_X*1?M(-8&T/Q-OMI&/,%E:B3'^_P"5G\:_<'XC
M?LQ_"GXMW#7'B[X?Z!K=X^2UY/9*MP?K*F'_ %KS2+_@FO\ LW177GCX8V9;
M.=C7]X4_[Y,V* /PAU'4_''QU\<K+>7&M>-_%FI.(TWF2\NYCV51R<#/ ' K
M]D_^":?[#%[^S5X?O?&?C6&-/'VN6X@%DK!_[,M,AC$6'!D=@I;' "JH/7/U
M;\./@?X ^$-NT/@OP=HOAH,,/)IUFD<KCT:3&YOQ)KN* "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH Y[QU_P )')X;NX/"ALX]<G'E6]SJ
M&6M[8G_ELZ#F0+U"#&XX&5!)'D?P3_8N\ ?!_6[GQ5=6\GC3XAW\S75_XO\
M$(6>\EG8Y9HQC;",] @R!@9.*]]HH 3 %+110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
J%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% '__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>10
<FILENAME>dsgx-20220731xex99d1002.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20220731xex99d1002.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  ," @," @,# P,$ P,$!0@%!00$
M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_
MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04
M%!04%!04%!04%!04%!04%!04%!04%!3_P  1" !]! (# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#ZX^+O[0OB
MKP-\1-7T/38]/>SM?*\LW$#.^6B1_P"]_M5Q_P#PUIXX_P">>D_^ K__ !=8
M?[2/_):_$7_;O_Z3Q5YG0![1_P -:>./^>>D_P#@*_\ \71_PUIXX_YYZ3_X
M"O\ _%UXO10![1_PUIXX_P">>D_^ K__ !='_#6GCC_GGI/_ ("O_P#%UXO1
M0![1_P -:>./^>>D_P#@*_\ \71_PUIXX_YYZ3_X"O\ _%UXO10![1_PUIXX
M_P">>D_^ K__ !='_#6GCC_GGI/_ ("O_P#%UXO10![1_P -:>./^>>D_P#@
M*_\ \71_PUIXX_YYZ3_X"O\ _%UXO10![1_PUIXX_P">>D_^ K__ !='_#6G
MCC_GGI/_ ("O_P#%UXO10![1_P -:>./^>>D_P#@*_\ \71_PUIXX_YYZ3_X
M"O\ _%UXO10![1_PUIXX_P">>D_^ K__ !='_#6GCC_GGI/_ ("O_P#%UXO1
M0![1_P -:>./^>>D_P#@*_\ \71_PUIXX_YYZ3_X"O\ _%UXO10![1_PUIXX
M_P">>D_^ K__ !='_#6GCC_GGI/_ ("O_P#%UXO10![1_P -:>./^>>D_P#@
M*_\ \71_PUIXX_YYZ3_X"O\ _%UXO10![1_PUIXX_P">>D_^ K__ !='_#6G
MCC_GGI/_ ("O_P#%UXO10![1_P -:>./^>>D_P#@*_\ \71_PUIXX_YYZ3_X
M"O\ _%UXO10![1_PUIXX_P">>D_^ K__ !='_#6GCC_GGI/_ ("O_P#%UXO1
M0![1_P -:>./^>>D_P#@*_\ \71_PUIXX_YYZ3_X"O\ _%UXO10![1_PUIXX
M_P">>D_^ K__ !='_#6GCC_GGI/_ ("O_P#%UXO10![1_P -:>./^>>D_P#@
M*_\ \71_PUIXX_YYZ3_X"O\ _%UXO10![1_PUIXX_P">>D_^ K__ !='_#6G
MCC_GGI/_ ("O_P#%UXO10![1_P -:>./^>>D_P#@*_\ \72?\-;>./\ GAI/
M_@,__P 77C%,H ]J_P"&MO''_//2?_ 9_P#XNFM^USXX'_++2?\ P&?_ .+K
MQ>F/]^@#VC_AKKQQ_P \-)_\!7_^+H?]KOQT/^6&D_\ @,__ ,77B3T/0![7
M_P ->>.O^>&D_P#@,_\ \71_PUYXZ_YX:3_X#/\ _%UXE0] 'M7_  V!XZ_Y
MX:1_X#/_ /%T?\-@>.O^>&D?^ S_ /Q=>)/3* /</^&PO'7_ #PTG_P&?_XN
MF?\ #8?CK_GAI/\ X#/_ /%UX@]% 'M__#8/CS_GAHW_ (#/_P#%TS_AL3QY
M_P \-'_\!G_^+KQ"A_N4 >V_\-D>//\ GAH__@,__P 71_PV1X\_YX:/_P"
MS_\ Q=>&TR@#W+_ALCQY_P \-'_\!G_^+H_X;(\>?\\-'_\  9__ (NO"J*
M/<O^&R_'_P#SPT;_ ,!G_P#BZ/\ ALOQ_P#\\-&_\!G_ /BZ\+IE 'NO_#9W
MC_\ YX:-_P" S_\ Q='_  V=X_\ ^>&C?^ S_P#Q=>%4R@#W5_VT?'X_Y8:/
M_P" S_\ Q=-_X;2^(/\ SPT;_P !7_\ BZ\'?[],>@#WO_AM+X@_\\-&_P#
M5_\ XND_X;4^(/\ SPT;_P !G_\ BZ\%>B@#WA_VU?B"/^6&C?\ @,__ ,71
M_P -K?$'_GAHW_@,_P#\77@KTR@#WW_AM;X@_P#/#1O_  &?_P"+IG_#:_Q"
M_P">.B?^ S__ !=>"O3* /??^&V?B%_SPT7_ ,!G_P#BZ;_PVU\0_P#GAHO_
M (#/_P#%UX$]#T >^_\ #;7Q#_YX:+_X#/\ _%TS_AMWXA_\\-%_\!G_ /BZ
M\"IE 'T!_P -N_$/_GAHO_@,_P#\73?^&WOB'_SPT3_P&?\ ^+KY_HH ]_\
M^&X/B)_SPT3_ ,!G_P#BZ9_PW%\1?^>.B_\ @(__ ,77@%14 ?0G_#<7Q%_Y
MXZ+_ . C_P#Q=,_X;B^(O_/'1?\ P$?_ .+KY^IE 'T+_P -Q_$;_GAHG_@,
M_P#\73/^&YOB+_SPT7_P$?\ ^+KY]IE 'T+_ ,-S?$7_ )X:+_X"/_\ %TS_
M (;H^(O_ #PT7_P$?_XNOGNF4 ?0O_#=/Q(_YX:)_P" C_\ Q=)_PW1\2/\
MGAH7_@(__P 77SQ10!]#_P##=7Q'_P">.A_^ C__ !=-?]NOXD#_ )8:'_X"
M/_\ %U\\/3'H ^B_^&[_ (D?\\-"_P# -_\ X[3'_;P^)'_/MH7_ (!O_P#'
M:^=$H>@#Z+_X;R^)'_/MH7_@&_\ \=IG_#>?Q+_Y]="_\ W_ /CM?.M#T ?1
M7_#>?Q+_ .?70O\ P#?_ ..TW_AO7XE?\^VA?^ ;?_':^='ICT ?1W_#>OQ*
M_P"?;0O_  #;_P".TS_AOGXE_P#/KH7_ (!O_P#':^<J90!](?\ #?/Q+_Y]
M="_\ W_^.TW_ (;Y^)O_ #[:%_X!M_\ ':^<:90!]'?\-^_$W_GVT+_P#;_X
M[1_PW[\3?^?;0O\ P#;_ ..U\V44 ?2?_#?GQ-_Y]M _\ W_ /CM,_X;_P#B
M;_S[:!_X!O\ _':^;Z90!])_\-__ !-_Y]M _P# -_\ X[3/^'@7Q-_Y]M _
M\ W_ /CM?-O\=,>@#Z5_X> _$_\ Y]O#_P#X!O\ _':;_P / OBA_P ^WA__
M , W_P#CM?-+T4 ?2O\ P\$^*'_/MH'_ (!O_P#':;_P\%^*'_/MX?\ _ -O
M_CM?-3TQZ /IA_\ @H/\3Q_R[:!_X!O_ /':9_P\'^*/_/IX?_\  .7_ ..U
M\U/3* /IC_AX/\4?^?3P_P#^ <O_ ,=H_P"'A/Q0_P"?7P__ . 4O_QVOF=Z
M;0!]+_\ #PKXH_\ /KX?_P# .7_X[1_P\,^*/_/IX?\ _ .7_P".U\RTR@#Z
M;_X>&?%'_GU\/_\ @'+_ /':/^'AGQ3_ .?7P[_X!R__ !VOF*B@#Z:_X>'_
M !3_ .?7P[_X!R__ !VC_AX?\4_^?7P[_P" <O\ \=KYBIE 'T[_ ,/$_BI_
MS[>'?_ "7_X[3/\ AXI\4_\ GU\._P#@'+_\=KYCIG\= 'U!_P /%/BI_P ^
MWAW_ , )?_CM)_P\6^*?_/KX=_\  .7_ ..U\P4R@#Z@_P"'BWQ6_P"?;P[_
M . $O_QVF_\ #QKXK?\ /KX=_P# "7_X[7R_3* /J+_AXQ\5O^?7P[_X!2__
M !VFO_P4<^*P_P"77P[_ . $O_QVOE^F/]^@#ZC_ .'CGQ6_Y]O#O_@#+_\
M':/^'CGQ6_Y]O#O_ ( R_P#QVOEJF/0!]2O_ ,%'_BL/^77P[_X 2_\ QVF_
M\/'_ (L?\^OAW_P E_\ CM?+CTQZ /WFHHHH ^&/VD?^2U^(O^W?_P!)XJ\S
MKTS]I'_DM?B+_MW_ /2>*O,Z "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "F4^F4 %,?[]/IC_?H B>AZ'H>@!M#T4/0 QZ93WIE #7HH>B@!E#_<HH?[
ME $5,I],H 91110 VF4^F4 %,I],H B?[],>GO\ ?ICT #T4/10 UZ93WIE
M ],I[TR@!KT/0]#T ,IE/IE #:*** &5%4M14 %,I],H *93Z90 VF4^F4 ,
MHHHH :],>GO3'H 8E#T)0] #:'HH>@!CTQZ>],>@!M,I],H *93Z90!%1110
M 4RGTR@!O\=,>G_QTQZ &/10]% #7ICT]Z8]  ],I[TR@ >FTYZ;0 RF4^F4
M -HHHH 93*?3* &TS^.GTS^.@ IE/IE #:93Z90 4Q_OT^F/]^@!M,>GTQZ
M!Z8]/>F/0!^\U%%% 'PQ^TC_ ,EK\1?]N_\ Z3Q5YG7IG[2/_):_$7_;O_Z3
MQ5YG0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4RGTR@ IC_ 'Z?3'^_
M0!$]#T/0] #:'HH>@!CTRGO3* &O10]% #*'^Y10_P!R@"*F4^F4 ,HHHH ;
M3*?3* "F4^F4 1/]^F/3W^_3'H 'HH>B@!KTRGO3* !Z93WIE #7H>AZ'H 9
M3*?3* &T444 ,J*I:BH *93Z90 4RGTR@!M,I],H 91110 UZ8]/>F/0 Q*'
MH2AZ &T/10] #'ICT]Z8] #:93Z90 4RGTR@"*BBB@ IE/IE #?XZ8]/_CIC
MT ,>BAZ* &O3'I[TQZ !Z93WIE  ]-ISTV@!E,I],H ;1110 RF4^F4 -IG\
M=/IG\= !3*?3* &TRGTR@ IC_?I],?[] #:8]/ICT #TQZ>],>@#]YJ*** /
MAC]I'_DM?B+_ +=__2>*O,Z],_:1_P"2U^(O^W?_ -)XJ\SH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH *93Z90 4Q_OT^F/]^@")Z'H>AZ &T/10] #
M'IE/>F4 ->BAZ* &4/\ <HH?[E $5,I],H 91110 VF4^F4 %,I],H B?[],
M>GO]^F/0 /10]% #7IE/>F4 #TRGO3* &O0]#T/0 RF4^F4 -HHHH 9452U%
M0 4RGTR@ IE/IE #:93Z90 RBBB@!KTQZ>],>@!B4/0E#T -H>BAZ &/3'I[
MTQZ &TRGTR@ IE/IE $5%%% !3*?3* &_P =,>G_ ,=,>@!CT4/10 UZ8]/>
MF/0 /3*>],H 'IM.>FT ,IE/IE #:*** &4RGTR@!M,_CI],_CH *93Z90 V
MF4^F4 %,?[]/IC_?H ;3'I],>@ >F/3WICT ?O-1110!\,?M(_\ ):_$7_;O
M_P"D\5>9UZ9^TC_R6OQ%_P!N_P#Z3Q5YG0 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4RGTR@ IC_?I],?[] $3T/0]#T -H>BAZ &/3*>],H :]%#T4
M ,H?[E%#_<H BIE/IE #**** &TRGTR@ IE/IE $3_?ICT]_OTQZ !Z*'HH
M:],I[TR@ >F4]Z90 UZ'H>AZ &4RGTR@!M%%% #*BJ6HJ "F4^F4 %,I],H
M;3*?3* &4444 ->F/3WICT ,2AZ$H>@!M#T4/0 QZ8]/>F/0 VF4^F4 %,I]
M,H BHHHH *93Z90 W^.F/3_XZ8] #'HH>B@!KTQZ>],>@ >F4]Z90 /3:<]-
MH 93*?3* &T444 ,IE/IE #:9_'3Z9_'0 4RGTR@!M,I],H *8_WZ?3'^_0
MVF/3Z8]  ],>GO3'H _>:BBB@#X8_:1_Y+7XB_[=_P#TGBKS.O3/VD?^2U^(
MO^W?_P!)XJ\SH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *93Z90 4Q_
MOT^F/]^@")Z'H>AZ &T/10] #'IE/>F4 ->BAZ* &4/]RBA_N4 14RGTR@!E
M%%% #:93Z90 4RGTR@")_OTQZ>_WZ8]  ]%#T4 ->F4]Z90 /3*>],H :]#T
M/0] #*93Z90 VBBB@!E15+45 !3*?3* "F4^F4 -IE/IE #**** &O3'I[TQ
MZ &)0]"4/0 VAZ*'H 8],>GO3'H ;3*?3* "F4^F4 14444 %,I],H ;_'3'
MI_\ '3'H 8]%#T4 ->F/3WICT #TRGO3* !Z;3GIM #*93Z90 VBBB@!E,I]
M,H ;3/XZ?3/XZ "F4^F4 -IE/IE !3'^_3Z8_P!^@!M,>GTQZ !Z8]/>F/0!
M^\U%%% 'PA^TMJ%M%\;/$2R7,*/_ *+\CR*/^7>*O,_[2L_^?RV_[^K7%_MT
M?\G4^-_I9?\ I%;UX10!]5_VG9_\_D'_ ']2C^T[/_G\@_[^I7ROLI^U: /J
M7^T[/_G\@_[^I1_:=G_S^0?]_4KY:V4[:M 'U'_:=G_S^0?]_4H_M.S_ .?R
M#_OZE?+]/V4 ?3O]I6G_ #\P?]_5H_M*T_Y^8/\ OZM?,FRC90!]-_VE:?\
M/S!_W]6C^TK3_GY@_P"_JU\S[*-E 'TQ]OL_^?F#_OZM'V^S_P"?F#_OZM?-
M2)3ME 'TG]OL_P#GY@_[^K1]OL_^?F#_ +^K7S?M6G[5H ^C?M]M_P _,'_?
MU*/M]M_S\P?]_4KYR2G4 ?1?V^V_Y^8/^_J4?;[;_GY@_P"_J5\[HE/V4 ?0
MOV^V_P"?F#_OZE'V^V_Y^8/^_J5\^;** /H;[?;?\_,'_?U*/M]M_P _,'_?
MU*^?*?LH ^@/M]M_S\P?]_4H^V6W_/S!_P!_5KP'910![]]LMO\ GY@_[^K1
M]LMO^>\7_?U:\$I^R@#WC[9;?\]XO^_JT?;+;_GO%_W]6O"=E/H ]R^VP?\
M/>+_ +Z2C[;!_P ]XO\ OI*\-HH ]R^VP?\ />+_ +Z2C[;!_P ]XO\ OI*\
M02G)0![;]M@_Y[Q?]])2_;(/^>\7_?5>*4)0![7]L@_Y[Q?]]4?;(/\ GO%_
MWU7B].H ]F^V0?\ />+_ +ZIOVR#_GO%_P!]5X]3Z /7OMD'_/>+_OJHWN8-
M_P#KX_\ OJO)$^_3WH ]6>YB_P">L?\ WU3'N8O^>L?_ 'U7EE34 >F_:8O^
M>L?_ 'W3/M,7_/6/_ONO-Z* /1O/C_YZQ?\ ?5)YT7_/5?\ ONO/:?0!WKS1
M?\]5_P"^Z/.B_P">J_\ ?=<)3Z .U\Z+_GJO_?=#S1;/]:O_ 'W7%4^@#K?.
M3^\O_?5,WI_?7_OJN5IR4 =+O3^^O_?52;T_O+7,I3Z -W>G]Y:-Z?WEK"2G
M)0!L[T_O4;T_O5DT^@"Z_P!^F57HH L45%10 ]Z94M% $6RF58_CI] %1T;^
M[3-C_P!VM.GT 8^QO[K4S8W]UJVZ?_!0!@[&_NM3=C?W6KHJ* .=V/\ W&_[
MYJ+R7_N-_P!\UU5/2@#DO)?^XW_?-,\F7_GDW_?%=DE/H XKR9?^>3?]\4SR
M9?\ GDW_ 'Q7<)3Z ."\F7_GDW_?%,\F7_GDW_?%>A44 >>_9I?^>3?]\4S[
M-+_SRD_[XKTBGT >:?9I?^>4G_?%,>VG_P">4O\ WS7IU.H \M^S3_\ /"7_
M +YH>VG_ .>$G_?->J[ZEH \B^S3_P#/"7_OFF/;3_\ /"3_ +YKV"GT >,_
M8Y_^>$O_ 'S0]G/_ ,\)/^^:]FHH \6^QS_\\)?^^:;]CG_YX2_]\U[710!X
MI]CG_P">$O\ W[>F?8Y_^>$O_?->W44 >&?8[G_GA+_WZ:E^Q3_\\)?^^7KW
M*B@#PS['/_SPE_[]O3?L<_\ SPG_ ._3U[K10!X/]CN=_P#Q[3_]^FH>SN?^
M?:?_ +]-7O%% '@CV%S_ ,^T_P#WZ>F_8[G_ )]I_P#OTU>^T4 >!?8[G_GV
MG_[]-3'L[G_GVG_[]-7T!10!\^/9W/\ S[3_ /?IJ;]@N?\ GVG_ ._3U]"T
M4 ?/7V"Y_P"?:?\ []/3/L%S_P ^T_\ WZ>OHBB@#YT^P7/_ #[3_P#?IZ/L
M%S_S[3_]^GKZ+HH ^<OL%S_S[3_]^GIGV"Y_Y]I_^_3U](44 ?-_V"Y_Y]I_
M^_3TS[!<_P#/M/\ ]^GKZ3HH ^:OL%S_ ,^T_P#WZ>F?8+S?_P >T_\ WZ>O
MIBB@#YG^P7G_ #[3_P#?IJ;]@O/^?.?_ +]/7TU10!\Q?V9>?\^<_P#WZ>F?
MV9>?\^<__?IZ^H** /E_[!>?\^<__?IZ8^FWF[_CSG_[]-7U'10!\M?V9>?\
M^<__ 'Z>A]-O/^?.?_OT]?4M% 'RN^FWG_/G/_WZ>F_V9>?\^=S_ -^GKZJH
MH _3.BBB@#\D?VZ?^3J?&O\ VY?^D5O7@]?JM\5OV'? GQ>^(6I>+=9U;Q%;
M:CJ9C\V*QN+=(E\N)8E*[H&8?*@_BKF/^'9WPP_Z#OBW_P #+;_Y'H _-.GU
M^E7_  [/^&/_ $'O%O\ X&6W_P CT[_AVG\,?^@[XM_\#+;_ .1Z /S3J6OT
MG_X=I_#'_H.^+?\ P,MO_D>G?\.U?AE_T'?%O_@9;?\ R/0!^:U/K])O^':O
MPR_Z#OBW_P #+;_Y'I?^':_PR_Z#OBW_ ,#+;_Y'H _-JGU^D?\ P[9^&7_0
M=\6?^!EM_P#(]'_#MCX9?]!SQ7_X%VW_ ,CT ?FY3Z_2#_AVQ\,O^@YXK_\
M NV_^1Z=_P .W/AG_P!!SQ7_ .!=M_\ (] 'YP)]RG)7Z._\.W?AI_T'/%?_
M (%VW_R/2_\ #M[X:?\ 0<\5_P#@7;?_ "/0!^<B45^CG_#N#X:?]!SQ7_X%
MVW_R/2_\.X?AK_T'/%?_ (%VW_R/0!^<24Y*_1O_ (=P_#7_ *#GBO\ \"[;
M_P"1Z/\ AW#\-?\ H.>*_P#P+MO_ )'H _.=*?7Z+_\ #N;X;_\ 0=\5_P#@
M7;?_ "/1_P .YOAO_P!!WQ7_ .!=M_\ (] 'YU45^BW_  [G^&__ $'/%?\
MX%VW_P CT?\ #N?X;_\ 0<\5_P#@7;?_ "/0!^=E/K]$O^'=/PW_ .@WXJ_\
M"K;_ .1Z7_AW7\-_^@UXH_\  JU_^1Z /SNHK]$O^'=GPW_Z#7BC_P ";7_Y
M'H_X=V?#?_H->*/_  )M?_D>@#\\*?7Z&_\ #N[X<?\ 0;\4?^!5K_\ (]+_
M ,.\/AS_ -!OQ1_X$VW_ ,CT ?GG3Z_0K_AWE\.?^@UXH_\  NW_ /C%+_P[
MT^'7_0:\4?\ @7;_ /QB@#\]**_0O_AWI\.O^@UXH_\  NW_ /C%'_#O3X=?
M]!KQ1_X%V_\ \8H _/=*<E?H-_P[T^'7_0:\4?\ @7;_ /QBE_X=\_#O_H->
M*/\ P+M__C% 'Y]T)7Z"?\._?AW_ -!CQ/\ ^!=O_P#&*/\ AW[\._\ H,>)
M_P#P+M__ (Q0!^?U.K] ?^'?OP[_ .@QXG_\"[?_ .,4O_#O[X>?]!GQ/_X%
M6_\ \8H ^ *?7WY_P[^^'G_09\3_ /@5;_\ QBG_ /# 'P]_Z#/B;_P*M_\
MXQ0!^?Z??J9Z^^?^& _A[_T&?$__ (%6_P#\8H_X8%^'W_09\3_^!=O_ /&*
M /@.IJ^]O^& _A[_ -!GQ/\ ^!5O_P#&*=_PP-\/O^@QXF_\"K?_ .,4 ?!-
M%?>W_#!/P^_Z"_B7_P "K?\ ^,4?\,$_#[_H+^)?_ JW_P#C% 'P93Z^\?\
MA@OX??\ 06\2?^!5O_\ &*/^&#_A_P#]!?Q+_P"!5O\ _&* /A"GU]V?\,'_
M  __ .@OXE_\"K?_ .,4_P#X80\ ?]!?Q)_X$V__ ,8H ^$*>E?=G_#"'@#_
M *"_B3_P)M__ (Q1_P ,(> /^@OXD_\  FW_ /C% 'PG3DK[K_X82\ _]!?Q
M)_X$V_\ \8H_X82\ _\ 07\2?^!-O_\ &* /A=*?7W-_PPOX"_Z"_B3_ ,"K
M?_XQ1_PPOX"_Z"_B3_P*M_\ XQ0!\,I3DK[E_P"&&? ?_07\2?\ @3;_ /QB
MG?\ ##/@/_H+^)/_  )M_P#XQ0!\-T^ON'_AASP'_P!!;Q'_ .!-O_\ &*/^
M&'/ ?_06\1_^!-O_ /&* /B"BON+_AA[P)_T%O$7_@3;_P#QBC_AA[P)_P!!
M;Q%_X$V__P 8H ^(**^W?^&(O G_ $%?$7_@3;__ !BC_AB+P)_T%?$7_@3;
M_P#QB@#XGHK[@_X8?\"_]!7Q#_X$P_\ QFC_ (8?\"_]!7Q#_P"!,/\ \9H
M^'T^_3Z^W?\ AA_P+_T%?$/_ ($P_P#QFE_X8@\"_P#06\0_^!,'_P 9H ^)
MOX*?7VQ_PQ)X&_Z"OB'_ ,"8/_C-'_#$O@?_ *"OB#_P)A_^,T ?$]/_ (*^
MU?\ AB7P/_T%?$'_ ($P_P#QFG?\,4>!_P#H*^(/_ F'_P",T ?%5%?:O_#%
M'@C_ *"NO_\ @1!_\9H_X8I\$_\ 05U__O\ P?\ QF@#XM2GI7V?_P ,4^"?
M^@KK_P#W_@_^,T[_ (8K\$_]!77_ /P(@_\ C- 'Q@E/K[-_X8M\%?\ 05U_
M_O\ P?\ QFC_ (8O\%?]!77_ /O_  ?_ !F@#XR2GU]F?\,8>"O^@KK_ /W_
M (/_ (S1_P ,8>"O^@KK_P#W_@_^,T ?&M%?9?\ PQEX*_Z"NO\ _@1!_P#&
M:/\ AC+P5_T%->_[_P '_P 9H ^-Z?7V/_PQMX+_ .@GKO\ W_@_^,T?\,;>
M#/\ H)Z[_P!_X/\ XS0!\<4ZOL7_ (8V\&?]!/7?^_\ !_\ &:7_ (8X\&?]
M!/7?^_\ !_\ &: /CRI:^P/^&.O!G_03UW_O_!_\9I?^&._!G_03UW_O_!_\
M9H ^/J?7U_\ \,>^#?\ H)Z[_P!_X/\ XS2_\,?^#O\ H)Z[_P"!$7_QJ@#X
M_HK[ _X8_P#!W_03UW_P(B_^-4?\,?\ @[_H)Z[_ .!$7_QJ@#X_HK[ _P"&
M/_!W_03UW_P(B_\ C5'_  Q_X._Z">N_^!$7_P :H ^/Z*^P/^&/_!W_ $$]
M=_\  B+_ .-4?\,?^#O^@GKO_@1%_P#&J /C^BOL#_AC_P '?]!/7?\ P(B_
M^-4?\,?^#O\ H)Z[_P"!$7_QJ@#X_HK[ _X8_P#!W_03UW_P(B_^-4?\,?\
M@[_H)Z[_ .!$7_QJ@#X_HK[ _P"&/_!W_03UW_P(B_\ C5'_  Q_X._Z">N_
M^!$7_P :H ^/Z*^P/^&/_!W_ $$]=_\  B+_ .-4?\,?^#O^@GKO_@1%_P#&
MJ /C^BOL#_AC_P '?]!/7?\ P(B_^-4?\,?^#O\ H)Z[_P"!$7_QJ@#X_HK[
M _X8_P#!W_03UW_P(B_^-4?\,?\ @[_H)Z[_ .!$7_QJ@#X_HK[ _P"&/_!W
M_03UW_P(B_\ C5'_  Q_X._Z">N_^!$7_P :H ^/Z*^P/^&/_!W_ $$]=_\
M B+_ .-4?\,?^#O^@GKO_@1%_P#&J /C^BOL#_AC_P '?]!/7?\ P(B_^-4?
M\,?^#O\ H)Z[_P"!$7_QJ@#X_HK[ _X8_P#!W_03UW_P(B_^-4?\,?\ @[_H
M)Z[_ .!$7_QJ@#X_HK[ _P"&/_!W_03UW_P(B_\ C5'_  Q_X._Z">N_^!$7
M_P :H ^/Z*^P/^&/_!W_ $$]=_\  B+_ .-4?\,?^#O^@GKO_@1%_P#&J /C
M^BOL#_AC_P '?]!/7?\ P(B_^-4?\,?^#O\ H)Z[_P"!$7_QJ@#X_HK[ _X8
M_P#!W_03UW_P(B_^-4?\,?\ @[_H)Z[_ .!$7_QJ@#X_HK[ _P"&/_!W_03U
MW_P(B_\ C5'_  Q_X._Z">N_^!$7_P :H ^/Z*^P/^&/_!W_ $$]=_\  B+_
; .-4?\,?^#O^@GKO_@1%_P#&J /<Z*** /_9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>11
<FILENAME>dsgx-20220731xex99d1028.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20220731xex99d1028.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  ," @," @,# P,$ P,$!0@%!00$
M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_
MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04
M%!04%!04%!04%!04%!04%!04%!04%!3_P  1" !S CX# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#]4Z*** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BD)Q7B'C[]M;X+?"_Q9?^&?$_CNPTG7+%@MQ9S*Y:,E0PSA<=
M"#0![A17S?\ \/%?V=_^BF:7_P!\R?\ Q-36?_!0G]GR_N%AB^)FD[VX&[>H
M_,K0!]%45RO@CXJ>$/B3;?:/"_B33->B W'[#<I(0/< Y%=3F@!:*** "BBO
M)_BW^U3\+/@7KUKHOCGQ=9^']3N;<745O<!BS1%F4-P#QE6'X4 >L45\W_\
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
M1<^N!5G_ (9^_:-_Z$_QW_WZN/\ &@#^C"D!S7\Z2?L_?M&[U_XH_P =]?\
MGE<?XU^_OP=M+RP^%/@^VU".6&_ATFU2>.<'S%D$2A@V><YZT =C29Q2TA&:
M / OVG?VT? ?[*EWX;MO%ANKB?69BHAL%#R00C@S,I(RH.!@<GMG%>E?#+XR
M^"_C%HD.J^#_ !%8ZY:2+N_T:8%T_P!Y.J_B*^'/^"@G_!.#Q/\ 'KQC=_$7
MP7XAEU'6GA6.30=3<"-508 MW_A'^R>Y)S7YC^(_@K\8_@AJKKJ'ACQ/X:N8
M6_X^;>&54^HD3Y3^= '])5S=0V=O)/<2I!!&I9Y)&"JH'4DGH*_ C_@IC\3_
M  Y\5?VK->U+PQ<17NGVEM!8O>0$%)I8UP[ CJ >,^U>17'BKXP^/D72IM3\
M9:\C_*+-IKJ<'VVY-?2?[*__  2Z^(WQ<\0V&I^.].N/!?A!)!)<?;5VW=PH
MYV)&>5STRV,4 ??W_!)SPQ?>&_V/=%DO4:,:EJ%U?0!O^>3,%4_0["?QK[(K
M*\*^&--\%^'--T+1[5+/2].MTMK:",8"(HP!6K0 5Y-^U)\";']HWX(^)?!%
MTR0W-[ 7L;IQG[/=+S$_TW<'V)KUFD(R: /YEY(O&?[-GQ?4,)] \8>&K\,#
M@@I(AZ_[2L/P(-?MM^R;_P %#?A[^T/X=L;75=3MO"_C5(UCN],OI1&DLF,%
MX6/#*3VZCI6C^V-^P7X._:PTM;UI/^$=\:6J8MM;MXPWF =(YE_C7WZCMZ'\
MD_B]_P $\_CC\&K^9G\)WFOZ?$3LU+05-PI /!VK\P_*@#^@N.5)8U=&#HPR
M&4Y!%9/B;QEH7@O3WOM>UBRT>S0$F:]G6)<#ZGFOYO;;Q%\7_"8_L^#4/&6D
MA3C[,DEU%CVVUN^'/@3\=OC=?HEGX8\6:^TI'^D7L<WE#/<R287]: /Z(?!/
MCG0OB/X:M?$'AK4X-8T:ZW>3>6S;D?:Q5L'V((_"MVOD_P#X)Q? 3XA_LZ?!
M6]\+^/9;3][J#7UC:6\ID>U5U'F(QQC&Y=P [EO6OJ\D*"2< =S0!2UK6++P
M]I-YJFI74=EI]G"T]Q<3,%2.-02S$]@ *_![_@H+^VK>_M0?$!])T:XE@^'V
MC3%;"WSC[5(.#<./?G:#T'UKV?\ X*A?MV?\+$U*Z^$_@74=WAJSEQK%_;2<
M7LRG_5*1UC4CGU(]J_. *6. ,GT% "45T>B?#?Q9XE.-)\,ZOJ?_ %Z6,LO_
M *"IKIT_9G^+<D?F+\,_%A3U_L:X_P#B* /-:^B_^">7_)Y/PR_["#?^BGKR
M#6_A'XX\-H6U;P=KVFJ.IN]-FC _-17L/_!/>)X/VS/AFDB-&XU%LJPP1^Z?
MM0!_0W12 TM !7XH?\%G_P#DZ/0O^Q8MO_2BXK]KZ_(O_@K-\"?B%\3/VC=&
MU3PIX-UCQ!IT?AVW@>ZT^T:6-9!/.2I('7# _C0!]'?\$<_^30YO^QDO?_1<
M%=A_P46_9+B_:4^#\]]I-JC>-?#T;W.G.!\TZ 9>#/\ M 9 ]0/6L_\ X)4^
M /$?PV_9>ETCQ3HE[H&IG7[N<6E_"8I/+9(0&P>QP?RK[%/(H _G<_8S_:<U
M7]DWXV6FKSBX.@SR?8M<T['+19P6VG^-#R/H1WK^A#PQXDTWQAX>T[7-'NX[
M[2]1@2YMKB)LK)&PRI'X&OR<_P""F'[!>OCXG#X@?#/PW=ZO9^(&+:EINF0%
MS;W..9 HZ*_4^^?6O7_^"67BKXK>!+*[^&'Q#\%^(-,T1%:YT?4[^SD6. ]7
M@9B. >J^^10!^C%%(*6@ HHHH _GR_X*3?\ )Z'Q&_Z^8O\ T2E?L3_P3^_Y
M,X^%G_8*'_HQZ_+W]O[]F_XH^-OVM/'NLZ!X"U[5]*NKB(PWEI9/)'(!$@)#
M <\BOU4_8A\-ZIX0_93^'&CZU83Z7JMIIHCN+.Z0I)$V]CAE/0\T >Y4444
M%%%% 'PM_P %B_\ DT^'_L.VO\GKY"_X(Q?\G&>(O^P&_P#Z,6OMW_@JIX \
M2?$C]F>+2O"VB7NOZD-9MI3:V$)EDV /EL#L,U^0^G?LM_'?2)3+8?#OQ?92
MD;2]O9RH2/3(H _I!HK^<_\ X9^_:-_Z$_QW_P!^KC_&C_AG[]HW_H3_ !W_
M -^KC_&@#^B\G%+7QS_P2T\)>,?!G[.-[8^.-/U73-8.NW$BPZNKB8QF.+:1
MNYVY!_6OL6@!:YOXB_$'1/A9X)UCQ5XBO%L='TNW:XN)6ZX Z =V)X [DUTE
M>%_M@_LQK^U5\*9/"7_"27GAN:.874,L W0RR ':LR=63GL01UYH Q/V<OV]
M?A5^T?9HFEZNN@ZX>'T76'2*<'_9.=KCZ'\*^C@P8 @@@]Q7\]'QA_8)^-OP
M.U25I_"=_K%A$V8]5T)&N(R!W^0;E_$5Y[:^/OC#H$!TRWU[QC8Q+\AM4N;I
M /;;F@#]4O\ @L-\7/"EA\!K?P(][;W?BK4=2@N8K*-@TEO%'N+2-C[O4 9Z
MY-?(?_!'WPO?:Q^UBNJP(QL](T>ZEN9!T'F*(U!/N6_0UXK\,/V0OC5^T#KT
M1L/"FLRQSN/-U?6$>*%0?XC))RWX9K]I?V+/V0-%_9)^'#:9#,NJ>)M299M6
MU79M\Q@/EC0=D7)P.Y)/>@#Z)HHHH **** "BBB@ I,4M% !28I:* $Q2T44
M %%%% !24M% !1110 4@&*6B@ HHHH 2FO"DHPZJP]&&:?10!!'86T1REO$A
MZY5 *FQBEHH **** "BBB@!,48%+10!"UI YRT,9/NHJ18U0850H] ,4ZB@!
M#QS7Q/\ MO?';QUXKN;KX)_ [3;O6?&M[&$UK4K+B/2H''W&EZ([ ^N0#[U]
MK31^;$Z;F3<"-RG!'TK&\*>"M$\$V4MKHNG0V*32M//)&O[RXE8Y:21_O.Y/
M)9B2: /S.^!__!%^#RX+_P"*OBB224X:32]".![@S,/Y"OM_X8?L5?!/X10Q
M#P[\/=(6YC'_ !^W\/VRX8^IDEW'\L"O;<4M %:TTZTL(EBMK6&WB485(HPH
M'T JQBEHH BEMHIU*R1)(IX(900:Y&?X,> [CQ+8>(6\'Z*-=L)/-MM22QC2
M>)L$9#@ YP379T4 (!BEHHH *3%+10 F*",TM% "8HQ2T4 (!BEHHH *0\TM
M% "8S1BEHH **** "BBB@!,4M%% !1110 F*6BB@ I#S2T4 -*@_3TJ%M/M7
M<.UO$7'\1C&?Y58HH :J!!@  >@%+TI:* "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
)BB@ HHHH __9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>12
<FILENAME>dsgx-20220731xex99d2001.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 dsgx-20220731xex99d2001.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  ," @," @,# P,$ P,$!0@%!00$
M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_
MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04
M%!04%!04%!04%!04%!04%!04%!04%!3_P  1" #2!#@# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#]4Z*** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBFDT .HIHIU !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!C>+_\
MD S?]=8?_1J44>+_ /D S?\ 76'_ -&I10!LT444 %%%% !1110 4444 %%%
M% !7F/[1?Q:N_@I\,[GQ/96,.HSQ7$4(@G8JI#D@G(YKTZOG3]O?_DW?4/\
MK^MO_0C0!PVE_M8_&?6M$MM9L?@X]]I5Q&)HKJW\UUD0]UQUKN_@K^V7H'Q,
M\0#PSKNF7'A#Q.6V):WAS',XZJK$ JW^RP'U-=Q^S!S^SYX"_P"P7%_6O#O^
M"@G@#3[/POI'Q T^-++Q!I]['"]S$-K2H<E=Q[E6 P?<T ?85?._[2W[2^N_
M!3Q5X=T31/#UMKMQJZ'8DKLKE]X554#KDFO7?A3XBF\6_#7PUK-S_P ?%[81
M32>[%1DU\C_MVZU#X;^,_P ,M6N$>2"Q9+F1(QEF5)U8@>^!0!V!_:.^/8!_
MXLA-G_MI_C7T[X3U*_U?PQI5]JEB=-U*XMHY;FS.<P2%063GT.17SWH'[>W@
MKQ#KNGZ7!HNM)->W"6Z-)" H9F !//3FOID'(!H YGXD_$+2OA9X+U/Q-K4C
M)86,>YE09>1B<*BCU)(%?*UG^UI\:/&\#:QX0^%377A[<?+E:*24N!_M @$_
M05[]^TI\*KGXR?"/5_#EC,L&H,T=S;%S\K21MN"M['D?C7SE\%OVJ;SX'VUC
M\//BCX?NM$&G+Y%O?I$<!,\%A_$/]I<T >^_LZ?''5_C-IFJG6O"=UX9O]+F
M%O/YN1&[D9*J& 8$=P?4<U[%65X;\0:3XJTF#5M%O;?4-/NEWQW-LP97_$=_
MKS1XJU1M$\,ZKJ"#+VMK),H]U4D4 >(?'C]KS2OA5KD?A?0=+E\6>+I,*;*V
M)V0D] Q )+'^ZOXXKSFX_:<^/?AVW.K:U\)&&BJ-[^7!*KHGJ2&)''JM5?\
M@G_X9MO%6H>,?B%JJ+>ZY->F"*:7YFB##>Y&>A.X#/H*^TRH(P>10!ROPM\=
MGXE^!-)\2G2KK11J$7FK:7F-ZC/!XZ@]0>,C'%=73418U"J J@8  P *5F"@
MDD #J30!#?7L&G6DUU<RK!;PH9))'.%50,DDUX1\*_C;-\5OC1JUM9NR>'[*
MS86R=/-.\ R'Z]O:O*/VJ_VA!XANYO"&@7/_ !+(&VWMQ&W^O<'[@/\ ='?U
MJE^P_<>;\2M5'IIY_P#0Q7W>'R3ZOE5;&XA>\U[J[+OZL_*<7Q,\9GV'RW!O
M]W&7O/\ F?;T7XL^X>A%?*?Q*_:T\;>'?C5J_@#PKX(@\2W5F%:-8W?SI%\M
M78X''&ZOJSO7P'XB^)6A_";]O+Q'XA\0RRP:9%#Y3/#'O;<UL@''UKX0_5CT
M;3_VU/$WA+Q5INF_$_X>7/A*QU!PD=ZN_P"3G&XAOO 9&<'(KZTAF2XB26-@
M\;J&5E.00>A%? G[1GQ8M/VM]5\*>#/AYI=]J4D%X9YKV6 HL8*[>?[J@$DD
M^@K[L\-Z4=#\/:9IK2>:UG:Q6Y<_Q;$"Y_2@#R/XW_%?XE^!/$MG9>#/AY)X
MNTZ6V\V6[3?B.3<1LX/H ?QKQ:Y_;5^*=GXPA\*S?"V&+Q',H>/3&>3SF4C(
M(&?0$U]KU\5^-/\ E(MX?_Z\X/\ T2] 'J_P=^,?Q5\:>-XM,\6_#.3PMHS0
M22-J+;\*X VKR>]>^T44 ?+7Q;_:M\9^#_C5?> /"W@NW\2W,,,4L2J[^=)N
MC#MP..,TS2/VA?CG>:K9V]U\&)K6UEF1)9SYG[M20"W7L*\J^*_Q+T_X2_MT
M:AXCU.WN+FSM[.%&CM5W.2UNH&!7T!\+/VQ_"OQ8\:6?AK3-*U6VO+I79)+F
M(*@VJ6.3GVH ][0DJ"1@D<BO.?CM\<-(^!/@TZWJ<3WD\K^3:641PTTF,]>P
M'4FO2*^>/VSO@AK'QB\"6,OA\"?5](F:X2T)QYZD<@9XW<<4 >;Q_M3?'B\L
M4UVV^$K/H#KYJ$6\S,T?4'.<D8[[:]J\ _%KQ9\5?AQIOB?1_#9TBXEDGBEL
M+[#>844[61LJ0I<;>1GK]:\N^#_[;EE#-;^%?B9ILWA77K8+;O=2Q%(F(X!=
M2,I_*OJZPN+:\LX9[.2.:UE4/')"0493R"".#F@#+\'7VLZCHJSZ]8IIVH-(
M^;>-@P5<_+R"<G%;E%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% &-XO_P"0#-_UUA_]&I11XO\ ^0#-_P!=8?\ T:E%
M &S1110 4444 %%%% !1110 4444 %?.G[>__)O&H?\ 7];?^A&OHNN;\?\
MP]T+XG>'9-"\16?V_3))%E:'>R993D'*D&@#QS]GGXV>!/#OP,\&6.I>*M,L
M[RUTV-)H)9P'C89R"/6O%OVC/BE_PU/XS\/_  U^'XDU+3(KH7%]J"*1&QZ9
M_P!U06.3U)%>^+^Q-\'U8'_A%@<=C=2__%5Z3X$^%GA3X:6KV_AK0K/24?[[
M01_._P#O,>3^= &MX5T"#PKX:TO1[;_46-NENGN%4"OCG]MNZM['X\?"FXO'
M2*TAGBDF>3[JH+A2Q/MC-?;=>>_$SX"^"OB]>V=WXITC^TI[1#'"WG.FU2<D
M?*10!4'QH^%",&7Q+X?5@<A@Z9!_*O0]+U.TUG3[>^L;B.ZL[A!)%-$<JZGH
M0?2O%/\ AB3X/_\ 0K?^3<O_ ,57L?ASP]8^$]"L-&TR'[/IUC"L$$6XML11
M@#)Y- '/_%3XL>'_ (.^&1KGB*X>"S:=+=!&NYW=CV'L,D^PKSKXB_$CX(_%
M+P!=-X@UK1M3TXP,Z%V'VB)L<&/^)6^E>P>*/"6C^-='FTO7-.M]4L)1\T%R
M@9?KST/O7BK?L*_")M0^U?V%<@9W?9Q>R>5],9Z4 ><?\$X#J8\+^+E8S-H0
MO$^R&3IOP=V/PVYQ7U]JFGQZKIMW93#,5Q$T3?1@0?YU3\,>%M)\&:-;Z3HE
MA!ING6XQ';VZ!5'_ -?WK6H ^ _@GX\?]CWXL^)/!7C2&6U\.ZG,)K6_"$HA
M!(5_=64@''0@5]<R_M"?#B'3OMS>,M)^S[=V1< G'TZUM>/?ACX7^)NFBQ\2
MZ+:ZM OW#,GSI[JPY'X5Y-:?L*?"*UOA<_V'<S '/D2WLAC_ "S0![=X;\2Z
M=XNT&QUG2;E;S3;Z(303IT=3T-?.7[6W[1J>#[*;P?X>N0=:N4Q>7$;?\>L9
M_A!_OD?D*]>\5VNH^"O!EOX;^'FBP17S1FWLD \NVLE[R.?;.<#))KQCPW^P
MEI=Y/)J7C;Q)?:YJEPYEG%I^YC+DY/S'+'Z\5]#E*P5&:Q..EHMHK5M^?DO/
M<^3SUYAB:3P66QLY?%)NR2[)]WY;'Q#)?DDDG)/4FOI+]@JX\[XHZPN>FFG_
M -#%?0L?[&/PJ2'RSH,KG^^UY(6_/-;/PQ_9K\(_"+Q1=:WX<^VP2W$!MW@F
MG\R,+G.1D9SQZU]=F7$N#QF#J8>"DG):72_S/A,GX-QV78^CBJDHM1=W9N_Y
M'JXZU\0:=HNG^(/^"AOB"RU.QM]0M'M7W0742R(?]%3!P017V^*XFU^#7A.R
M^),_CR'3-OBB=2DE[YK<@H$/RYQ]T =*_,#]G/DV;[3^Q1^T+YJHY^''BE\-
M@9$!SU'NA/XJ:^X[.\AU"UAN;:59K>9!)'(ARK*1D$&N;^(OPR\-_%70AH_B
M?34U*Q659E1F*LCCH0P((K2\)^%=/\%:!9Z+I4;PZ?:)Y<,<DC2%%],L2<4
M;%?%?C3_ )2+>'_^O.#_ -$O7VI7$7OP:\)ZA\2+?QW/IF_Q/;HL<=YYK#"A
M2H^7..A/:@#MZ*** /ASQ3KFC^'?^"@=W>Z[=6UGIR640>6[($8)MUQG-?35
MI\9_A<MS']E\3:$L[$*ACD0-D\8&!5+QW^S#\.OB5XFN=?\ $.A?;M4N%19)
MOM$B9"J%7@,!T K$MOV+?A':7$4\7AC;+$X=3]JEX(.1_%0![>CK(H93E2,@
MCN*X'XH_'/PE\'KG2(?$U\;,ZG(8XF5"P4#JS8Z+VS7>Q1K#$D:#"( H'L*Y
MOQY\-/#/Q-TO^S_$NCVVJVX^[YR_,A]58<C\* /G_P#:E\5?!SQ]\*=4O;O5
M-'U'68[<MIMQ:LINA+_" 1SCU!XKH_V$FU9OV>-*_M7S-@NIQ9>;G/V?<-N,
M]MV_'M4VE_L-_"/2]26\&@SW)5MPAN;R1XO^^2>?QKW;3["VTJRAL[.".VM8
M4"1PQ*%5%'0 "@"Q1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110!C>+_P#D S?]=8?_ $:E%'B__D S?]=8?_1J44 ;
M-%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 -Q2CBEHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M QO%_P#R 9O^NL/_ *-2BCQ?_P @&;_KK#_Z-2B@#9HI*,T +129HS0 M%)F
MC- "T4F:,T +129HS0 M%)FC- "T4F:,T +129HS0 M%)FC- "T44F: %HI,
MT9H 6BDS1F@!:*3-&: %HI,T9H 6BDS1F@!:*3-&: %HI,T9H 6BDS1F@!:*
M3-&: %HI,T9H 6BDS[44 +1249Q0 M%(#FEH **** "BBB@ HHHH **** "B
MBB@ HI*6@ HI*,4 +1129H 6BBB@ HI*,4 +128HQ0 M%)BC% "T4E+0 444
ME "T444 %%)BEH **2C- "T4E% "T4F:,^XH 6BDS1FD M%)1F@!:*3-&:8"
MT444 %%)FC- "T4F:,T +129I: "BDS10 M%)1F@!:*3-&: %HI*,T +129I
M: "BDHH 6BDYHH 6BBB@ HI#10 M%)P*,B@!:*3BC% "T4F#1B@!:*3%&* %
MHI** %HHHI %%%)1<!:*3-+3 ****5P,;Q?_ ,@&;_KK#_Z-2BCQ?_R 9O\
MKK#_ .C4HI@? O\ POCQ]_T,UY^8_P */^%\>/O^AFO/S'^%<%17]5_V9@?^
M?$?_  %?Y'\0_P!L9E_T$3_\"?\ F=[_ ,+X\??]#->?F/\ "C_A?'C[_H9K
MS\Q_A7!44?V9@?\ GQ'_ ,!7^0?VQF7_ $$3_P# G_F=[_POCQ]_T,UY^8_P
MH_X7QX^_Z&:\_,?X5P5%']F8'_GQ'_P%?Y!_;&9?]!,__ G_ )G>_P#"^/'W
M_0S7GYC_  H_X7QX^_Z&:\_,?X5P5%']F8'_ )\1_P# 5_D']L9E_P!!$_\
MP)_YG>_\+X\??]#->?F/\*/^%\>/O^AFO/S'^%<%11_9F!_Y\1_\!7^0?VQF
M7_01/_P)_P"9WO\ POCQ]_T,UY^8_P */^%\>/O^AFO/S'^%<%11_9F!_P"?
M$?\ P%?Y!_;&9?\ 03/_ ,"E_F=[_P +X\??]#->?F/\*/\ A?'C[_H9KS\Q
M_A7!44?V9@?^?$?_  %?Y!_;&9?]!$__  )_YG>_\+X\??\ 0S7GYC_"C_A?
M'C[_ *&:\_,?X5P5%']F8'_GQ'_P%?Y!_;&9?]!$_P#P)_YG>_\ "^/'W_0S
M7GYC_"C_ (7QX^_Z&:\_,?X5P5%']F8'_GQ'_P !7^0?VQF7_03/_P "?^9W
MO_"^/'W_ $,UY^8_PH_X7QX^_P"AFO/S'^%<%11_9F!_Y\1_\!7^0?VQF7_0
M1/\ \"?^9WO_  OCQ]_T,UY^8_PH_P"%\>/O^AFO/S'^%<%11_9F!_Y\1_\
M 5_D']L9E_T$3_\  G_F=[_POCQ]_P!#->?F/\*/^%\>/O\ H9KS\Q_A7!44
M?V9@?^?$?_ 5_D']L9E_T$S_ / G_F=[_P +X\??]#->?F/\*/\ A?'C[_H9
MKS\Q_A7!44?V9@?^?$?_  %?Y!_;&9?]!$__  )_YG>_\+X\??\ 0S7GYC_"
MC_A?'C[_ *&:\_,?X5P5%']F8'_GQ'_P%?Y!_;&9?]!,_P#P)_YG>_\ "^/'
MW_0S7GYC_"C_ (7QX^_Z&:\_,?X5P5%']F8'_GQ'_P !7^0?VQF7_03/_P "
M?^9WO_"^/'W_ $,UY^8_PH_X7QX^_P"AFO/S'^%<%11_9F!_Y\1_\!7^0?VQ
MF7_01/\ \"?^9WO_  OCQ]_T,UY^8_PH_P"%\>/O^AFO/S'^%<%11_9F!_Y\
M1_\  5_D']L9E_T$S_\  G_F=[_POCQ]_P!#->?F/\*/^%\>/O\ H9KS\Q_A
M7!44?V9@?^?$?_ 5_D']L9E_T$S_ / G_F=[_P +X\??]#->?F/\*/\ A?'C
M[_H9KS\Q_A7!44?V9@?^?$?_  %?Y!_;&9?]!$__  )_YG>_\+X\??\ 0S7G
MYC_"C_A?'C[_ *&:\_,?X5P5%']F8'_GQ'_P%?Y!_;&9?]!,_P#P)_YG>GX\
M>/O^AFO?S'^%-_X7SX^_Z&>]_,?X5P9Z4VFLKP/_ #XC_P" K_(I9QF7_01/
M_P "?^9WW_"^?'W_ $,][^8_PII^/7C_ #_R,][^8_PK@Z:>M/\ LO _\^(?
M^ K_ "'_ &QF7_01/_P)_P"9WC?'KQ_G_D9[W\Q_A33\>_'X/_(SWOYC_"N#
M;K3&ZU+RS V_@1_\!7^1:SC,O^@B?_@3_P SO3\>_'^/^1GO?S'^%!^/GQ _
MZ&>]_,?X5P!Z4-4K+,#_ ,^(_P#@*_R+6<9C_P!!$_\ P)_YG>GX^?$#'_(T
M7OYC_"D_X7[\0?\ H:+[_OH?X5P)Z4VAY9@?^?$?_ 5_D/\ M?,?^@B?_@3_
M ,SOQ\??B!_T-%[^8_PIO_"_OB#_ -#1>_FO^%<"*:.E']F8'_GQ'_P%?Y%+
M-\Q_Z")_^!/_ #._/Q_^(.?^1IO?S7_"D_X7_P#$'_H:;W\U_P *\_/6D%1_
M9F!_Y\1_\!7^1?\ :^8_]!$__ G_ )GH!_: ^(7_ $--[^:_X4T_M _$(?\
M,TWOYK_A7GYZTUJ/[,P/_/B/_@*_R*_M?,?^@B?_ ($_\ST$_M!?$,?\S5??
MFO\ A3?^&@_B'_T-5]^:_P"%>?-TIM+^S,#_ ,^(_P#@*_R*6;YC_P!!$_\
MP)_YGH9_:#^(F/\ D:K[\U_PII_:#^(F/^1JOOS7_"O/CTIAZ4GEF!_Y\1_\
M!7^12S;,/^@B?_@3_P ST+_AH3XB?]#5??FO^%(?VA?B)C_D:K[\U_PKSRD/
M2E_9F!_Y\1_\!7^12S;,/^@B?_@3_P ST,_M"_$7_H:[[\U_PII_:&^(O_0U
MWWYK_A7GIZTP]:/[,P/_ #XC_P" K_(M9MF'_01/_P "?^9Z&?VA_B+G_D:[
M[\U_PI/^&A_B+_T-=]^:_P"%>=GK24GEN!_Y\Q_\!7^17]JYA_S_ )_^!/\
MS/1#^T1\1A_S-=]^:_X4UOVB?B-Q_P 57??FO^%>>-3&I?V;@O\ GS'_ ,!7
M^12S7,/^?\__  )_YGHO_#1/Q'_Z&R^_-?\ "C_AHGXC_P#0V7WYK_A7G-%'
M]FX+_GS'_P !7^17]JYA_P _Y_\ @3_S/1/^&BOB/_T-E]^:_P"%-_X:,^)'
M_0V7WYK_ (5YU3*/[-P7_/F/_@*_R*_M7'_\_P"?_@3_ ,STC_AHSXD?]#;?
M?FO^%-/[1GQ(S_R-M_\ FO\ A7G(IIZU/]FX+_GS'_P%?Y%?VKC_ /G_ #_\
M"?\ F>C']H[XDY_Y&V^_-?\ "D/[1WQ)'_,VWWYK_A7G!ZTUNE']FX+_ )\Q
M_P# 5_D7_:F/_P"?\_\ P)_YGI!_:.^)/_0VW_YK_A36_:.^)./^1NO_ ,U_
MPKS@TUNE+^S<%_SYC_X"O\BEFF/_ .?\_P#P)_YGHY_:/^)0'_(W7_YK_A2?
M\-(?$K_H;K_\U_PKS<]*;2>6X+_GS'_P%?Y%+-,?_P _Y_\ @3_S/23^TA\2
MO^ANO_S7_"D_X:1^)?\ T-U_^:_X5YN>E,I?V;@O^?,?_ 5_D4LTQW_/^7_@
M3_S/23^TE\2_^ANO_P U_P *3_AI'XE_]#??_FO^%>:GK11_9N"_Y\Q_\!7^
M12S3'?\ /^7_ ($_\STD_M)_$L'_ )&^_P#S7_"FG]I3XF9_Y&^__-?\*\V/
M6F-UI/+<%_SYC_X"O\BUF>._Y_R_\"?^9Z4W[2GQ,_Z&^_\ S7_"D_X:5^)G
M_0WW_P":_P"%>:-24O[-P7_/F/\ X"O\A_VGCO\ G_+_ ,"?^9Z6?VE/B;C_
M )'#4/S7_"FG]I;XF_\ 0X:A^:_X5YJ>E-/2E_9N"_Y\Q_\  5_D7_:>._Y_
MR_\  G_F>E?\-+_$[_H<+_\ -?\ "E_X:7^)W_0X7_YK_A7F-%#R[!?\^8_^
M K_(K^TL;_S^E_X$_P#,],/[3'Q._P"APU#\U_PII_:9^)V?^1QU#\U_PKS,
M]::>M3_9V"_Y\Q_\!7^17]I8W_G]+_P)_P"9Z;_PTS\3_P#H<=0_-?\ "FG]
MIGXGY_Y''4/S7_"O,Z:>M']G8+_GS'_P%?Y%?VEC?^?TO_ G_F>FG]IKXH?]
M#CJ'YK_A33^TW\4!_P SCJ'YK_A7F34UNE#R[!?\^8_^ K_(I9EC?^?TO_ G
M_F>G?\-.?%#_ *'+4/S7_"D/[3GQ1Q_R.6H?FO\ A7F%!Z5/]G8/_GS'_P !
M7^1?]I8W_G]+_P "?^9Z;_PT[\4?^ARU#\U_PIO_  T]\4?^ASU#\U_PKS&F
MT?V=@_\ GS'_ ,!7^12S'&_\_I?^!/\ S/4/^&GOBE_T.>H?FO\ A2']I_XI
M#_F<]0_-?\*\O]:1NM']G8/_ )\Q_P# 5_D4LQQG_/Z7_@3_ ,ST]OVH/BE_
MT.>H?FO^%)_PU!\4O^ASU'\U_P *\O:FU+R[!_\ /F/_ ("O\BO[1QG_ #^E
M_P"!,]1/[4'Q2'_,YZC^:_X4T_M0_%/_ *'34?S7_"O+VZ4T]*/[/P?_ #YC
M_P" K_(K^T<9_P _I?\ @3/4?^&HOBG_ -#IJ/YK_A3?^&H_BI_T.FH_FO\
MA7EU,I?V=@_^?,?_  %?Y%?VCC/^?TO_  )GJG_#4?Q4_P"ATU'\U_PIA_:D
M^*N?^1UU'\U_PKRZFGK0\NP?_/F/_@*_R+_M#&?\_I?>SU(_M2?%7/\ R.NH
M_FO^%)_PU+\5?^AUU'\U_P *\L/6DJ?[.P?_ #YC_P" K_(K^T,9_P _I?>S
MU,_M2_%7_H==1_-?\*:?VIOBL/\ F==1_P"^E_PKRQNM-;I1_9V#_P"?,?\
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
MDC/D?=..GW/0X*E3#8G+JF-VYY0YUV:EK]ZU-3]K[XWZG^SIIGAKP-\/8H=
M1[0RFXBB5C'&#M55!!&20220<U\R_$G]JO7?B[\)H_"OBFVCO=5M[M+B'58U
M"%D ((=1W]QBOJ']I3X-1?M::+H'C+X=:Q8ZC>V]L86M9)PF]"=P'^RP)((.
M*^:_B[^RZGP2^%D6J^(==MI?%]Q=I&FDVDRLL,1!W%N,L<]Q@#WKNR9Y:J-&
M%5+ZQS:Z>]S7>_6WKH<6<+,76K3I-^PY=-?=Y;+;I?TU/GTT5]J?&/\ 8R\#
M_#_X"W7C73M0UV75HK."=8[FYB:'<^W/RB('')[U\5U]A@<PH9C"52A>R=M=
M-3Y+&X"ME\U3KVNU?3L-/6F-UIYZTQNM>D<*$I&I:1JAE#6Z4P]*>W2F'I06
M!Z4VG'I3:"AM,/6GTP]:EEA36ZTZFMUI%'K'[*/_ "</X*_Z^I/_ $3)11^R
MC_R</X*_Z^I/_1,E%?D/&'^_0_P+\Y'ZGPK_ +G/_$_R1Z+1117]!G\>A111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 AZ4VG'I3:I#04T]:=33UIC
M&MUIC=:>W6F-UJ9;&B&GI0U!Z4-4(M#3TIM./2FTV4(*:.E.%-'2D-#3UI!2
MGK2"H+&GK36IQZTUJ"QT-Q+:2K+!*\,B]'C8J1^(IUWJ%UJ!4W5S-<E>%,TA
M?'TS4+=*;4N*O>VIHI2MRWT+%KJ%UIY8VMS-;%N&,,A3/UQ4!GE\[S_,?SMV
M_P S<=V[.<Y]<]Z0]*8>E)I7O8I2=K7)[G4[R]D1[B[GG>/[C2R%BOT)/%3G
MQ)J^/^0I>_\ @0_^-9](>E0X0>C1JJDTVU)D]YJ5WJ!7[5=37.W[OG2%\?3)
MJJKM&X92593D$'!!IQZTP]:I))607;=VR^?$NKY_Y"M[_P"!#_XU6N]3O+\
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
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
MAZ4VG'I3:I#04T]:=33UIC&MUIC=:>W6F-UJ9;&B&GI0U!Z4-4(M#3TIM./2
MFTV4(*:.E.%-'2D-#3UI!2GK2"H+&GK36IQZTUJ"QK=*;3FZ4V@I >E,/2GG
MI3#TJ66AM(>E+2'I2*0AZTP]:>>M,/6@I#3UI*4]:2DS01J8U/:F-2&A****
M"QE,I],H* 4T]:<*:>M04-/6FMTIQZTUNE!8AIK=*<::W2DRD-/2FTX_=IM)
MEH#TIE//2F4BD-/6B@]:*"D-/6F-UIYZTQNM)EH:U)2M24BA#TIIZ4X]*:>E
M!8RBBBI90T]::>M./6FGK2+$IIZTZFGK04-:FMTIS4UNE)E(;0>E%!Z5)2&5
M[A^Q/_R<KX3_ -V\_P#22:O#ZZCX7?$C4_A+XXT[Q5H\%I<ZA8B41Q7R,\1W
MQM&=P5E/1SC!'.*X<?1GB,)6HPWE&27JTT>EEU:&'QE&M4^&,HM^B:9]N_%+
MQQ\&/AE\?;GQ-KZZU<^-K.-&2*)-ULA*$*5QCG:3U)%<W^S9\6I_C5^U/KWB
M26U^Q0MI1@MK?.XI$K?*">YY)/UKY(^*7Q+U3XN>,KOQ+K$%I;7URJ(\=BC)
M$ HP,!F8_K5_X._&?6_@?XEFUO0K6PN[N6 V[)J,;N@4G.0$=3GCUKY7^P''
M 2C=RK."CJ[I>2[(^M7$"EF$964:*FY:*S?F^[/KR9M3^'/[-/CC6-9\63_%
M33];)BM&#27$-H/F1BS2DL!G&1T!4>IK&\!:I8Z1^PWH%QJ/BG6/!]M_:DJ_
MVEH:LUP";B7"85E.T]^>U?./PR_:.\3_  LT37-%LK73-7T;6"6N-/U:&26%
M6(PQ0)(I!(P#R>@]*T_"O[4^M^%_A_;^"V\)>$M;\/P7$EQ';:Q82W #/(S]
M/. X+$#C('<UA4R?%)2BDG^\C.ZLKI1:VM9->EGN;T\YPKE&3;7[N4+.[M)R
M3O>]VGZW6QV'PE^+7ASP?^T+#X@U+7]?\=:#;:<T*:QK$+R7%DS%09"K,Q5%
M)*Y!_CKV77]&U3QOX<\;^(OAM\7[CQ19SVMPU[H&J$R1)$R-N1 2/+(7.W
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
MJ*Y8>/K<_P#+K)_WT*4>/+<_\NLG_?0H]K#N'U#$_P GY'3GI3:YK_A.[?\
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
ML6G+TIM.7I2CN2QR]*>M,7I3UK0S8M ZT4#K0(?1114$A1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110!VOP7_Y*CX=_P"OC_V5J*/@O_R5'P[_ -?'
M_LK45^%\>?\ (QI_X%_Z5(_I?PR_Y%-;_KX__28'V1_PH7X9?]$Z\)_^".U_
M^(H_X4+\,_\ HG7A/_P1VO\ \1116Y[(?\*&^&?_ $3KPG_X([;_ .(H_P"%
M#?#/_HG7A/\ \$EM_P#$444"%_X4-\,_^B=^%/\ P26W_P 11_PH?X:?]$[\
M*?\ @DMO_B***9(?\*(^&G_1//"G_@DMO_B*/^%$?#3_ *)YX4_\$EM_\111
M0(7_ (41\-/^B>>%/_!);?\ Q%*/@1\-<'_BWGA3_P $EM_\1110)B'X$_#7
M_HGGA3_P26W_ ,12K\"?AK_T3SPK_P""2V_^(HHIB8[_ (43\-?^B>^%?_!)
M;?\ Q%'_  HKX:_]$]\*_P#@DMO_ (BBBF2'_"BOAK_T3WPK_P""2V_^(H_X
M47\-O^B>^%?_  2VW_Q%%%!(O_"B_AM_T3[PK_X);;_XBC_A1GPW_P"B?>%?
M_!+;?_$444T(/^%&?#?_ *)]X5_\$MM_\11_PHSX;_\ 1/O"W_@EMO\ XBBB
M@0O_  HWX;_]$_\ "W_@EMO_ (BC_A1OPX_Z)_X6_P#!+;?_ !%%%!(?\*.^
M''_1/_"W_@EMO_B*/^%'?#C_ *)_X6_\$MM_\1110 ?\*/\ AQ_T3_PM_P""
M:V_^(H_X4?\ #C_H0/"__@FMO_B***9(O_"C_AS_ -"!X7_\$UM_\11_PI#X
M<_\ 0@>%_P#P36W_ ,1110(/^%(_#K_H0?"__@FMO_B*/^%(_#K_ *$'PO\
M^":V_P#B***!"_\ "D?AU_T(/A?_ ,$UM_\ $4?\*2^'7_0@^&/_  36W_Q%
M%%-"#_A27P[_ .A!\,?^":V_^(H_X4E\._\ H0?#'_@FM_\ XBBBF2'_  I/
MX=_]"%X8_P#!-;__ !%/_P"%)_#O_H0O#'_@FM__ (BBB@0?\*3^'?\ T(7A
MC_P36_\ \11_PI/X=_\ 0A>&/_!/;_\ Q%%%"$+_ ,*4^'G_ $(?AC_P3V__
M ,11_P *5^'G_0A^&?\ P3V__P 1113$'_"E?AY_T(?AG_P3V_\ \11_PI7X
M>_\ 0A^&?_!/;_\ Q%%% @_X4M\/?^A$\,_^">W_ /B*7_A2WP]_Z$3PS_X)
M[?\ ^(HHH)#_ (4M\/?^A$\,_P#@GM__ (BC_A2_P^_Z$3PS_P"">W_^(HHI
MB#_A3'P^_P"A%\-?^"BW_P#B*/\ A3'P^_Z$7PU_X*+?_P"(HHH$+_PICX??
M]"+X:_\ !1;_ /Q%'_"F?A__ -"+X:_\%%O_ /$444T(/^%,_#__ *$;PU_X
M*+?_ .(H_P"%-?#_ /Z$;PU_X*+?_P"(HHIB#_A37@#_ *$;PW_X*+?_ .(I
M?^%-> /^A&\-_P#@HM__ (BBB@0?\*;\ ?\ 0C>&_P#P46__ ,11_P *;\ ?
M]"/X;_\ !1;_ /Q%%% @_P"%.> ?^A'\-_\ @IM__B*7_A3G@'_H1_#?_@IM
M_P#XBBBFB0_X4YX!_P"A'\-_^"FW_P#B*/\ A3O@'_H2/#G_ (*;?_XBBB@D
M/^%/> O^A(\.?^"FW_\ B*/^%/> O^A(\.?^"FW_ /B***"1?^%/^ O^A(\.
M?^"FW_\ B*/^%/\ @+_H2?#G_@IM_P#XBBBFA!_PI_P'_P!"3X=_\%,'_P 1
M1_PJ#P'_ -"3X=_\%,'_ ,1110(/^%0> _\ H2?#O_@I@_\ B*7_ (5!X$_Z
M$KP[_P""J#_XBBB@0?\ "H? G_0E>'?_  50?_$4?\*A\"?]"5X=_P#!5!_\
M11130@_X5%X$_P"A*\._^"J#_P"(H_X5%X%_Z$OP]_X*H/\ XBBBA"8O_"H_
M O\ T)?A[_P50?\ Q%'_  J/P+_T)?A[_P %4'_Q%%%,D/\ A4G@;_H2_#W_
M (*H/_B*/^%2>!O^A,\/?^"J#_XBBBD(7_A4O@;_ *$SP]_X*X/_ (BC_A4O
M@;_H3/#W_@K@_P#B***8@_X5+X'_ .A,\/\ _@K@_P#B*/\ A4W@?_H3?#__
M (*X/_B***8A1\)O ^?^1-\/_P#@K@_^(I?^%3>!]Q_XHWP__P""N#_XBBB@
MD7_A4W@?_H3?#_\ X*X/_B*/^%3^"/\ H3?#_P#X*X/_ (BBBFA,7_A5'@C_
M *$[P_\ ^"N#_P")H_X51X(_Z$[P_P#^"N#_ .)HHIDA_P *H\$?]"=H'_@K
M@_\ B:/^%4^"?^A.T#_P5P?_ !-%%-@'_"J?!/\ T)V@?^"R#_XFE_X53X)_
MZ$_0/_!9!_\ $T44D2'_  JKP5_T)^@?^"R#_P")H_X57X*_Z$_0?_!9!_\
M$T450@_X57X*_P"A0T'_ ,%D'_Q-'_"J_!7_ $*&@_\ @L@_^)HHH$+_ ,*L
M\%_]"AH/_@LA_P#B:/\ A5G@O_H4-!_\%D/_ ,3112$'_"K/!?\ T*&@_P#@
MLA_^)H_X59X+_P"A0T'_ ,%D/_Q-%% !_P *L\%_]"AH/_@LA_\ B:/^%6>"
M_P#H4-!_\%D/_P 3110 ?\*L\%_]"AH/_@LA_P#B:/\ A5G@O_H4-!_\%D/_
M ,3110 ?\*L\%_\ 0H:#_P""R'_XFC_A5G@O_H4-!_\ !9#_ /$T44 '_"K/
M!?\ T*&@_P#@LA_^)H_X59X+_P"A0T'_ ,%D/_Q-%% !_P *L\%_]"AH/_@L
MA_\ B:/^%6>"_P#H4-!_\%D/_P 3110 ?\*L\%_]"AH/_@LA_P#B:/\ A5G@
MO_H4-!_\%D/_ ,3110 ?\*L\%_\ 0H:#_P""R'_XFC_A5G@O_H4-!_\ !9#_
M /$T44 '_"K/!?\ T*&@_P#@LA_^)H_X59X+_P"A0T'_ ,%D/_Q-%% !_P *
ML\%_]"AH/_@LA_\ B:/^%6>"_P#H4-!_\%D/_P 3110 ?\*L\%_]"AH/_@LA
M_P#B:/\ A5G@O_H4-!_\%D/_ ,3110 ?\*L\%_\ 0H:#_P""R'_XFC_A5G@O
M_H4-!_\ !9#_ /$T44 '_"K/!?\ T*&@_P#@LA_^)H_X59X+_P"A0T'_ ,%D
M/_Q-%% !_P *L\%_]"AH/_@LA_\ B:/^%6>"_P#H4-!_\%D/_P 3110 ?\*L
M\%_]"AH/_@LA_P#B:/\ A5G@O_H4-!_\%D/_ ,3110 ?\*L\%_\ 0H:#_P""
MR'_XFC_A5G@O_H4-!_\ !9#_ /$T44 '_"K/!?\ T*&@_P#@LA_^)H_X59X+
M_P"A0T'_ ,%D/_Q-%% !_P *L\%_]"AH/_@LA_\ B:/^%6>"_P#H4-!_\%D/
M_P 3110 ?\*L\%_]"AH/_@LA_P#B:/\ A5G@O_H4-!_\%D/_ ,3110!3U;X?
M^%]&LQ>:?X;TBQO(I8C'<6UC%'(F9%!PRJ"."1^-%%%?!9__ +S'_#^K/T_A
*?_<Y_P")_DC_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>13
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139894033851776">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document And Entity Information<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_DocumentInformationLineItems', window );"><strong>Document Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">6-K<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Jul. 31,  2022<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">DESCARTES SYSTEMS GROUP INC<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0001050140<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 );">Current Fiscal Year End Date</a></td>
<td class="text">--01-31<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_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2023<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_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">Q2<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
</tr>
</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_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_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_DocumentInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_DocumentInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893937310720">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED BALANCE SHEETS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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="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</a></td>
<td class="nump">$ 189,030<span></span>
</td>
<td class="nump">$ 213,437<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_AccountsReceivableNetAbstract', window );"><strong>Accounts receivable (net)</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_AccountsReceivableNetCurrent', window );">Trade (Note 5)</a></td>
<td class="nump">48,913<span></span>
</td>
<td class="nump">41,705<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_OtherReceivablesNetCurrent', window );">Other (Note 6)</a></td>
<td class="nump">11,420<span></span>
</td>
<td class="nump">14,075<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_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other</a></td>
<td class="nump">20,664<span></span>
</td>
<td class="nump">21,974<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_InventoryNet', window );">Inventory (Note 7)</a></td>
<td class="nump">814<span></span>
</td>
<td class="nump">868<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_AssetsCurrent', window );">ASSETS, CURRENT, TOTAL</a></td>
<td class="nump">270,841<span></span>
</td>
<td class="nump">292,059<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_OtherAssetsNoncurrent', window );">OTHER LONG-TERM ASSETS (Note 19)</a></td>
<td class="nump">19,262<span></span>
</td>
<td class="nump">18,652<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_PropertyPlantAndEquipmentNet', window );">PROPERTY AND EQUIPMENT, NET (Note 8)</a></td>
<td class="nump">11,400<span></span>
</td>
<td class="nump">10,817<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_OperatingLeaseRightOfUseAsset', window );">RIGHT-OF-USE ASSETS (Note 13)</a></td>
<td class="nump">8,089<span></span>
</td>
<td class="nump">10,571<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_DeferredIncomeTaxAssetsNet', window );">DEFERRED INCOME TAXES</a></td>
<td class="nump">12,777<span></span>
</td>
<td class="nump">14,962<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_IntangibleAssetsNetExcludingGoodwill', window );">INTANGIBLE ASSETS, NET (Note 9)</a></td>
<td class="nump">252,565<span></span>
</td>
<td class="nump">229,609<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_Goodwill', window );">GOODWILL (Note 10)</a></td>
<td class="nump">671,802<span></span>
</td>
<td class="nump">608,761<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_Assets', window );">ASSETS, TOTAL</a></td>
<td class="nump">1,246,736<span></span>
</td>
<td class="nump">1,185,431<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_LiabilitiesCurrentAbstract', window );"><strong>CURRENT 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_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">9,837<span></span>
</td>
<td class="nump">10,566<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_AccruedLiabilitiesCurrent', window );">Accrued liabilities (Note 11)</a></td>
<td class="nump">71,416<span></span>
</td>
<td class="nump">56,442<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_OperatingLeaseLiabilityCurrent', window );">Lease obligations (Note 13)</a></td>
<td class="nump">3,604<span></span>
</td>
<td class="nump">4,029<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_AccruedIncomeTaxesCurrent', window );">Income taxes payable</a></td>
<td class="nump">4,449<span></span>
</td>
<td class="nump">5,616<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_DeferredRevenueCurrent', window );">Deferred revenue (Note 19)</a></td>
<td class="nump">66,547<span></span>
</td>
<td class="nump">56,780<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 );">LIABILITIES, CURRENT, TOTAL</a></td>
<td class="nump">155,853<span></span>
</td>
<td class="nump">133,433<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_OperatingLeaseLiabilityNoncurrent', window );">LEASE OBLIGATIONS (Note 13)</a></td>
<td class="nump">5,094<span></span>
</td>
<td class="nump">7,382<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_DeferredRevenueNoncurrent', window );">DEFERRED REVENUE (Note 19)</a></td>
<td class="nump">1,746<span></span>
</td>
<td class="nump">1,920<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_AccruedIncomeTaxesNoncurrent', window );">INCOME TAXES PAYABLE</a></td>
<td class="nump">8,303<span></span>
</td>
<td class="nump">7,354<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_DeferredIncomeTaxLiabilitiesNet', window );">DEFERRED INCOME TAXES</a></td>
<td class="nump">37,301<span></span>
</td>
<td class="nump">35,523<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_Liabilities', window );">LIABILITIES, TOTAL</a></td>
<td class="nump">208,297<span></span>
</td>
<td class="nump">185,612<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_CommitmentsAndContingencies', window );">COMMITMENTS, CONTINGENCIES AND GUARANTEES (Note 14)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <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>SHAREHOLDERS' EQUITY (Note 15)</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_CommonStockValue', window );">Common shares - unlimited shares authorized; Shares issued and outstanding totaled 84,788,547 at July 31, 2022 (January 31, 2022 - 84,756,210)</a></td>
<td class="nump">537,003<span></span>
</td>
<td class="nump">536,297<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_AdditionalPaidInCapitalCommonStock', window );">Additional paid-in capital</a></td>
<td class="nump">479,620<span></span>
</td>
<td class="nump">473,303<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_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive income (loss)</a></td>
<td class="num">(26,813)<span></span>
</td>
<td class="num">(12,393)<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_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">48,629<span></span>
</td>
<td class="nump">2,612<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 );">Stockholders' Equity Attributable to Parent, Ending Balance</a></td>
<td class="nump">1,038,439<span></span>
</td>
<td class="nump">999,819<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 SHAREHOLDERS' EQUITY, TOTAL</a></td>
<td class="nump">$ 1,246,736<span></span>
</td>
<td class="nump">$ 1,185,431<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<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_AccountsReceivableNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AccountsReceivableNetAbstract</td>
</tr>
<tr>
<td style="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_AccountsReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4428-111522<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4531-111522<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_AccountsReceivableNetCurrent</td>
</tr>
<tr>
<td style="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_AccruedIncomeTaxesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 currently due domestic and foreign income tax obligations.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_AccruedIncomeTaxesCurrent</td>
</tr>
<tr>
<td style="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_AccruedIncomeTaxesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 beyond one year or the operating cycle, whichever is longer. Alternate captions include income taxes payable, noncurrent.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_AccruedIncomeTaxesNoncurrent</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_AccumulatedOtherComprehensiveIncomeLossNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=d3e637-108580<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14A<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669686-108580<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=d3e681-108580<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_AccumulatedOtherComprehensiveIncomeLossNetOfTax</td>
</tr>
<tr>
<td style="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_AdditionalPaidInCapitalCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_AdditionalPaidInCapitalCommonStock</td>
</tr>
<tr>
<td style="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>Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<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>Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6801-107765<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<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_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 currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3044-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.25)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.(a),19)<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121557415&amp;loc=d3e14326-108349<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_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="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_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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31917-109318<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_DeferredIncomeTaxLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred tax asset, of deferred tax liability attributable to taxable differences 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31917-109318<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_DeferredIncomeTaxLiabilitiesNet</td>
</tr>
<tr>
<td style="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_DeferredRevenueCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and obligation to transfer product and service to customer for which consideration has been received or is receivable, 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_DeferredRevenueCurrent</td>
</tr>
<tr>
<td style="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_DeferredRevenueNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as noncurrent.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_DeferredRevenueNoncurrent</td>
</tr>
<tr>
<td style="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_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120320667&amp;loc=SL49117168-202975<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<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_Goodwill</td>
</tr>
<tr>
<td style="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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19-26)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<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_Liabilities</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 20: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.21)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="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_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="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_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee's right to use underlying asset under operating lease.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_OtherReceivablesNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, of receivables classified as other, due within one year or the 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_OtherReceivablesNetCurrent</td>
</tr>
<tr>
<td style="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_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 in future periods, and amount of other assets that are expected to be realized or consumed 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>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(7))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<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>The cumulative amount of the reporting entity's undistributed earnings or 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 65<br> -Paragraph 15<br> -Subparagraph (g)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121322162&amp;loc=SL121327923-165333<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<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_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>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI http://asc.fasb.org/extlink&amp;oid=122038336&amp;loc=d3e74512-122707<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893933975040">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals) - shares<br></strong></div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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>CONDENSED CONSOLIDATED BALANCE SHEETS</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_CommonStockSharesIssued', window );">Common shares, shares issued (in shares)</a></td>
<td class="nump">84,788,547<span></span>
</td>
<td class="nump">84,756,210<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 shares, shares outstanding (in shares)</a></td>
<td class="nump">84,788,547<span></span>
</td>
<td class="nump">84,756,210<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893937471632">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS</strong></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>
</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">REVENUES</a></td>
<td class="nump">$ 123,011<span></span>
</td>
<td class="nump">$ 104,570<span></span>
</td>
<td class="nump">$ 239,406<span></span>
</td>
<td class="nump">$ 203,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_CostOfGoodsAndServicesSold', window );">COST OF REVENUES</a></td>
<td class="nump">28,919<span></span>
</td>
<td class="nump">25,470<span></span>
</td>
<td class="nump">56,742<span></span>
</td>
<td class="nump">49,319<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 MARGIN</a></td>
<td class="nump">94,092<span></span>
</td>
<td class="nump">79,100<span></span>
</td>
<td class="nump">182,664<span></span>
</td>
<td class="nump">154,089<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_CostsAndExpensesAbstract', window );"><strong>EXPENSES</strong></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>
</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_SellingAndMarketingExpense', window );">Sales and marketing</a></td>
<td class="nump">14,315<span></span>
</td>
<td class="nump">11,328<span></span>
</td>
<td class="nump">27,551<span></span>
</td>
<td class="nump">22,339<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</a></td>
<td class="nump">18,155<span></span>
</td>
<td class="nump">15,473<span></span>
</td>
<td class="nump">34,724<span></span>
</td>
<td class="nump">30,692<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_GeneralAndAdministrativeExpense', window );">General and administrative</a></td>
<td class="nump">12,700<span></span>
</td>
<td class="nump">10,855<span></span>
</td>
<td class="nump">24,342<span></span>
</td>
<td class="nump">21,861<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_OtherCostAndExpenseOperating', window );">Other charges (Note 20)</a></td>
<td class="nump">1,289<span></span>
</td>
<td class="nump">414<span></span>
</td>
<td class="nump">2,771<span></span>
</td>
<td class="nump">934<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_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">16,086<span></span>
</td>
<td class="nump">14,911<span></span>
</td>
<td class="nump">31,134<span></span>
</td>
<td class="nump">28,746<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_OperatingExpenses', window );">Operating Expenses, Total</a></td>
<td class="nump">62,545<span></span>
</td>
<td class="nump">52,981<span></span>
</td>
<td class="nump">120,522<span></span>
</td>
<td class="nump">104,572<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_OperatingIncomeLoss', window );">INCOME FROM OPERATIONS</a></td>
<td class="nump">31,547<span></span>
</td>
<td class="nump">26,119<span></span>
</td>
<td class="nump">62,142<span></span>
</td>
<td class="nump">49,517<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_InterestExpense', window );">INTEREST EXPENSE</a></td>
<td class="num">(284)<span></span>
</td>
<td class="num">(272)<span></span>
</td>
<td class="num">(562)<span></span>
</td>
<td class="num">(549)<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_InvestmentIncomeNet', window );">INVESTMENT INCOME</a></td>
<td class="nump">461<span></span>
</td>
<td class="nump">61<span></span>
</td>
<td class="nump">614<span></span>
</td>
<td class="nump">124<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">INCOME BEFORE INCOME TAXES</a></td>
<td class="nump">31,724<span></span>
</td>
<td class="nump">25,908<span></span>
</td>
<td class="nump">62,194<span></span>
</td>
<td class="nump">49,092<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_IncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>INCOME TAX EXPENSE (RECOVERY) (Note 18)</strong></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>
</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_CurrentIncomeTaxExpenseBenefit', window );">Current</a></td>
<td class="nump">7,498<span></span>
</td>
<td class="nump">4,732<span></span>
</td>
<td class="nump">12,339<span></span>
</td>
<td class="nump">6,866<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_DeferredIncomeTaxExpenseBenefit', window );">Deferred</a></td>
<td class="nump">1,324<span></span>
</td>
<td class="num">(2,000)<span></span>
</td>
<td class="nump">3,838<span></span>
</td>
<td class="nump">629<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 );">INCOME TAX EXPENSE (RECOVERY), Total</a></td>
<td class="nump">8,822<span></span>
</td>
<td class="nump">2,732<span></span>
</td>
<td class="nump">16,177<span></span>
</td>
<td class="nump">7,495<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="nump">$ 22,902<span></span>
</td>
<td class="nump">$ 23,176<span></span>
</td>
<td class="nump">$ 46,017<span></span>
</td>
<td class="nump">$ 41,597<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_EarningsPerShareAbstract', window );"><strong>Earnings Per Share</strong></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>
</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_EarningsPerShareBasic', window );">Earning Per Share (Basic)</a></td>
<td class="nump">$ 0.27<span></span>
</td>
<td class="nump">$ 0.27<span></span>
</td>
<td class="nump">$ 0.54<span></span>
</td>
<td class="nump">$ 0.49<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_EarningsPerShareDiluted', window );">Earning Per Share (Diluted)</a></td>
<td class="nump">$ 0.27<span></span>
</td>
<td class="nump">$ 0.27<span></span>
</td>
<td class="nump">$ 0.53<span></span>
</td>
<td class="nump">$ 0.48<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_WeightedAverageNumberOfSharesOutstandingAbstract', window );"><strong>WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)</strong></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>
</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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted Average Share Outstanding (Basic)</a></td>
<td class="nump">84,783<span></span>
</td>
<td class="nump">84,566<span></span>
</td>
<td class="nump">84,774<span></span>
</td>
<td class="nump">84,534<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_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Weighted Average Share Outstanding (Diluted)</a></td>
<td class="nump">86,338<span></span>
</td>
<td class="nump">86,128<span></span>
</td>
<td class="nump">86,344<span></span>
</td>
<td class="nump">86,066<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_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16225-109274<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_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="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_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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI http://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2(a),(d))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<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_CostsAndExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CostsAndExpensesAbstract</td>
</tr>
<tr>
<td style="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_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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) pertaining to taxable income (loss) from continuing operations.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<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_CurrentIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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) pertaining to income (loss) from continuing operations.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<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_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1448-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1337-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=125512782&amp;loc=d3e4984-109258<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=125512782&amp;loc=d3e3842-109258<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1252-109256<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=SL5780133-109256<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=125512782&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=125512782&amp;loc=d3e3842-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1252-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1337-109256<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<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_GeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<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_GeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="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_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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 18: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 940<br> -SubTopic 20<br> -Section 25<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123384075&amp;loc=d3e41242-110953<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<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_IncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="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_InterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cost of borrowed funds accounted for as interest expense.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6450988&amp;loc=d3e26243-108391<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124435984&amp;loc=d3e28555-108399<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (210.5-03(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<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_InterestExpense</td>
</tr>
<tr>
<td style="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_InvestmentIncomeNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 accretion (amortization) of discount (premium), and investment expense, of interest income and dividend 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7(a),(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.8)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<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_InvestmentIncomeNet</td>
</tr>
<tr>
<td style="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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<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_OperatingExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.</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_OperatingExpenses</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<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_OtherCostAndExpenseOperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 total amount of other operating cost and expense items that are associated with the entity's normal revenue producing operation.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.3)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<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_OtherCostAndExpenseOperating</td>
</tr>
<tr>
<td style="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_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>The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 730<br> -Section 25<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6472174&amp;loc=d3e58812-109433<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<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_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9038-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130545-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130543-203045<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9031-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI http://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<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_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="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_SellingAndMarketingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of expenses directly related to the marketing or selling of products or services.</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_SellingAndMarketingExpense</td>
</tr>
<tr>
<td style="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_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1505-109256<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_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="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_WeightedAverageNumberOfSharesOutstandingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_WeightedAverageNumberOfSharesOutstandingAbstract</td>
</tr>
<tr>
<td style="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_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1448-109256<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_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932073472">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</strong></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>
</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">$ 22,902<span></span>
</td>
<td class="nump">$ 23,176<span></span>
</td>
<td class="nump">$ 46,017<span></span>
</td>
<td class="nump">$ 41,597<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_OtherComprehensiveIncomeLossTaxAbstract', window );"><strong>Other comprehensive income (loss):</strong></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>
</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_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustment, net of income tax expense (recovery) of ($88) and ($208) for the three and six month periods ended July 31, 2022 (($1) and ($186) for the same periods in fiscal 2022)</a></td>
<td class="num">(2,802)<span></span>
</td>
<td class="num">(7,400)<span></span>
</td>
<td class="num">(14,420)<span></span>
</td>
<td class="nump">3,482<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_OtherComprehensiveIncomeLossNetOfTax', window );">Total other comprehensive income (loss)</a></td>
<td class="num">(2,802)<span></span>
</td>
<td class="num">(7,400)<span></span>
</td>
<td class="num">(14,420)<span></span>
</td>
<td class="nump">3,482<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_ComprehensiveIncomeNetOfTax', window );">COMPREHENSIVE INCOME</a></td>
<td class="nump">$ 20,100<span></span>
</td>
<td class="nump">$ 15,776<span></span>
</td>
<td class="nump">$ 31,597<span></span>
</td>
<td class="nump">$ 45,079<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_ComprehensiveIncomeNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(24))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=d3e557-108580<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(26))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669625-108580<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669619-108580<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_ComprehensiveIncomeNetOfTax</td>
</tr>
<tr>
<td style="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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<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_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669646-108580<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_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="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_OtherComprehensiveIncomeLossNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax and reclassification adjustments of other comprehensive income (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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669619-108580<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124442407-227067<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21463-112644<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 45<br> -Paragraph 17<br> -URI http://asc.fasb.org/extlink&amp;oid=118261656&amp;loc=d3e32136-110900<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=124507222&amp;loc=d3e1436-108581<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 45<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=118261656&amp;loc=d3e32211-110900<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6450520&amp;loc=d3e32583-110901<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124442411-227067<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669625-108580<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<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_OtherComprehensiveIncomeLossNetOfTax</td>
</tr>
<tr>
<td style="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_OtherComprehensiveIncomeLossTaxAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OtherComprehensiveIncomeLossTaxAbstract</td>
</tr>
<tr>
<td style="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_StatementOfIncomeAndComprehensiveIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementOfIncomeAndComprehensiveIncomeAbstract</td>
</tr>
<tr>
<td style="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>18
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932151952">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</strong></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>
</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_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax', window );">Foreign currency translation adjustment, income tax expense (recovery)</a></td>
<td class="nump">$ 88<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">$ 208<span></span>
</td>
<td class="nump">$ 186<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_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax expense (benefit), after reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 45<br> -Paragraph 21<br> -URI http://asc.fasb.org/extlink&amp;oid=118261656&amp;loc=d3e32262-110900<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=d3e640-108580<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=125521441&amp;loc=d3e30755-110894<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669646-108580<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_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax</td>
</tr>
<tr>
<td style="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_StatementOfIncomeAndComprehensiveIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementOfIncomeAndComprehensiveIncomeAbstract</td>
</tr>
<tr>
<td style="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>19
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893938275696">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Common shares</div></th>
<th class="th"><div>Additional paid-in capital.</div></th>
<th class="th"><div>Accumulated other comprehensive income (loss).</div></th>
<th class="th"><div>Retained earnings (accumulated deficit)</div></th>
<th class="th"><div>Total</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 );">Balance, beginning of period at Jan. 31, 2021</a></td>
<td class="nump">$ 531,825<span></span>
</td>
<td class="nump">$ 464,102<span></span>
</td>
<td class="num">$ (1,189)<span></span>
</td>
<td class="num">$ (83,670)<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_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Stock options and share units exercised</a></td>
<td class="nump">2,385<span></span>
</td>
<td class="num">(888)<span></span>
</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense (Note 17)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,167<span></span>
</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_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive income (loss), net of income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,482<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_NetIncomeLoss', window );">Net income</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="nump">41,597<span></span>
</td>
<td class="nump">$ 41,597<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 );">Balance, end of period at Jul. 31, 2021</a></td>
<td class="nump">534,210<span></span>
</td>
<td class="nump">468,381<span></span>
</td>
<td class="nump">2,293<span></span>
</td>
<td class="num">(42,073)<span></span>
</td>
<td class="nump">962,811<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 );">Balance, beginning of period at Apr. 30, 2021</a></td>
<td class="nump">532,634<span></span>
</td>
<td class="nump">466,093<span></span>
</td>
<td class="nump">9,693<span></span>
</td>
<td class="num">(65,249)<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_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Stock options and share units exercised</a></td>
<td class="nump">1,576<span></span>
</td>
<td class="num">(727)<span></span>
</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense (Note 17)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,015<span></span>
</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_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive income (loss), net of income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(7,400)<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_NetIncomeLoss', window );">Net income</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="nump">23,176<span></span>
</td>
<td class="nump">23,176<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 );">Balance, end of period at Jul. 31, 2021</a></td>
<td class="nump">534,210<span></span>
</td>
<td class="nump">468,381<span></span>
</td>
<td class="nump">2,293<span></span>
</td>
<td class="num">(42,073)<span></span>
</td>
<td class="nump">962,811<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 );">Balance, beginning of period at Jan. 31, 2022</a></td>
<td class="nump">536,297<span></span>
</td>
<td class="nump">473,303<span></span>
</td>
<td class="num">(12,393)<span></span>
</td>
<td class="nump">2,612<span></span>
</td>
<td class="nump">999,819<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_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Stock options and share units exercised</a></td>
<td class="nump">706<span></span>
</td>
<td class="num">(206)<span></span>
</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense (Note 17)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,523<span></span>
</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_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive income (loss), net of income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(14,420)<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_NetIncomeLoss', window );">Net income</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="nump">46,017<span></span>
</td>
<td class="nump">46,017<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 );">Balance, end of period at Jul. 31, 2022</a></td>
<td class="nump">537,003<span></span>
</td>
<td class="nump">479,620<span></span>
</td>
<td class="num">(26,813)<span></span>
</td>
<td class="nump">48,629<span></span>
</td>
<td class="nump">1,038,439<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 );">Balance, beginning of period at Apr. 30, 2022</a></td>
<td class="nump">536,842<span></span>
</td>
<td class="nump">475,934<span></span>
</td>
<td class="num">(24,011)<span></span>
</td>
<td class="nump">25,727<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_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Stock options and share units exercised</a></td>
<td class="nump">161<span></span>
</td>
<td class="num">(50)<span></span>
</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense (Note 17)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,736<span></span>
</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_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive income (loss), net of income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,802)<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_NetIncomeLoss', window );">Net income</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="nump">22,902<span></span>
</td>
<td class="nump">22,902<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 );">Balance, end of period at Jul. 31, 2022</a></td>
<td class="nump">$ 537,003<span></span>
</td>
<td class="nump">$ 479,620<span></span>
</td>
<td class="num">$ (26,813)<span></span>
</td>
<td class="nump">$ 48,629<span></span>
</td>
<td class="nump">$ 1,038,439<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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 award 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=122142933&amp;loc=d3e11149-113907<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5047-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=122142933&amp;loc=d3e11178-113907<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123468992&amp;loc=d3e4534-113899<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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax of other comprehensive income (loss) attributable to parent 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669625-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=123454820&amp;loc=SL4569643-111683<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669619-108580<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 19<br> -URI http://asc.fasb.org/extlink&amp;oid=123454820&amp;loc=SL4569616-111683<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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodValueStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 stock issued as a result of the exercise of stock options.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29-31)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_StockIssuedDuringPeriodValueStockOptionsExercised</td>
</tr>
<tr>
<td style="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_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>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI http://asc.fasb.org/extlink&amp;oid=122038336&amp;loc=d3e74512-122707<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<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>20
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893938204576">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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>
<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">$ 22,902<span></span>
</td>
<td class="nump">$ 23,176<span></span>
</td>
<td class="nump">$ 46,017<span></span>
</td>
<td class="nump">$ 41,597<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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net income to cash provided by operating activities:</strong></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>
</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,301<span></span>
</td>
<td class="nump">1,287<span></span>
</td>
<td class="nump">2,546<span></span>
</td>
<td class="nump">2,502<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_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">16,086<span></span>
</td>
<td class="nump">14,911<span></span>
</td>
<td class="nump">31,134<span></span>
</td>
<td class="nump">28,746<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_ShareBasedCompensation', window );">Stock-based compensation expense (Note 17)</a></td>
<td class="nump">3,736<span></span>
</td>
<td class="nump">3,015<span></span>
</td>
<td class="nump">6,523<span></span>
</td>
<td class="nump">5,167<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_OtherNoncashIncomeExpense', window );">Other non-cash operating activities</a></td>
<td class="nump">68<span></span>
</td>
<td class="nump">281<span></span>
</td>
<td class="nump">51<span></span>
</td>
<td class="nump">557<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_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax (recovery) expense</a></td>
<td class="nump">1,324<span></span>
</td>
<td class="num">(2,000)<span></span>
</td>
<td class="nump">3,838<span></span>
</td>
<td class="nump">629<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_IncreaseDecreaseInOperatingCapital', window );">Changes in operating assets and liabilities (Note 21)</a></td>
<td class="nump">982<span></span>
</td>
<td class="nump">5,704<span></span>
</td>
<td class="nump">722<span></span>
</td>
<td class="nump">8,082<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_NetCashProvidedByUsedInOperatingActivities', window );">Cash provided by operating activities</a></td>
<td class="nump">46,399<span></span>
</td>
<td class="nump">46,374<span></span>
</td>
<td class="nump">90,831<span></span>
</td>
<td class="nump">87,280<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_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract', window );"><strong>INVESTING ACTIVITIES</strong></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>
</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_PaymentsToAcquirePropertyPlantAndEquipment', window );">Additions to property and equipment</a></td>
<td class="num">(1,786)<span></span>
</td>
<td class="num">(941)<span></span>
</td>
<td class="num">(3,422)<span></span>
</td>
<td class="num">(2,596)<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition of subsidiaries, net of cash acquired (Note 3)</a></td>
<td class="num">(61,096)<span></span>
</td>
<td class="num">(54,418)<span></span>
</td>
<td class="num">(103,988)<span></span>
</td>
<td class="num">(90,278)<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_NetCashProvidedByUsedInInvestingActivities', window );">Cash used in investing activities</a></td>
<td class="num">(62,882)<span></span>
</td>
<td class="num">(55,359)<span></span>
</td>
<td class="num">(107,410)<span></span>
</td>
<td class="num">(92,874)<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_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract', window );"><strong>FINANCING ACTIVITIES</strong></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>
</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_RepaymentsOfDebt', window );">Credit facility and other debt repayments</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(1,068)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(1,068)<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_PaymentsOfDebtIssuanceCosts', window );">Payment of debt issuance costs</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(66)<span></span>
</td>
<td class="num">(60)<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_ProceedsFromIssuanceOfCommonStock', window );">Issuance of common shares for cash, net of issuance costs (Note 15)</a></td>
<td class="nump">111<span></span>
</td>
<td class="nump">850<span></span>
</td>
<td class="nump">499<span></span>
</td>
<td class="nump">1,497<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_PaymentForContingentConsiderationLiabilityFinancingActivities', window );">Payment of contingent consideration</a></td>
<td class="num">(5,215)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(5,215)<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_NetCashProvidedByUsedInFinancingActivities', window );">Cash (used in) provided by financing activities</a></td>
<td class="num">(5,104)<span></span>
</td>
<td class="num">(218)<span></span>
</td>
<td class="num">(4,782)<span></span>
</td>
<td class="nump">369<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_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Effect of foreign exchange rate changes on cash</a></td>
<td class="num">(1,162)<span></span>
</td>
<td class="num">(576)<span></span>
</td>
<td class="num">(3,046)<span></span>
</td>
<td class="num">(78)<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Decrease in cash</a></td>
<td class="num">(22,749)<span></span>
</td>
<td class="num">(9,779)<span></span>
</td>
<td class="num">(24,407)<span></span>
</td>
<td class="num">(5,303)<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash, beginning of period</a></td>
<td class="nump">211,779<span></span>
</td>
<td class="nump">138,137<span></span>
</td>
<td class="nump">213,437<span></span>
</td>
<td class="nump">133,661<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash, end of period</a></td>
<td class="nump">189,030<span></span>
</td>
<td class="nump">128,358<span></span>
</td>
<td class="nump">189,030<span></span>
</td>
<td class="nump">128,358<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_SupplementalCashFlowInformationAbstract', window );"><strong>Supplemental disclosure of cash flow information:</strong></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>
</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_IncomeTaxesPaidNet', window );">Cash paid during the period for income taxes</a></td>
<td class="nump">$ 3,709<span></span>
</td>
<td class="nump">$ 1,583<span></span>
</td>
<td class="nump">$ 7,803<span></span>
</td>
<td class="nump">$ 4,761<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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="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_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16225-109274<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_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=SL98516268-108586<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3521-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3044-108585<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations</td>
</tr>
<tr>
<td style="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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 230<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123444420&amp;loc=d3e33268-110906<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3521-108585<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</td>
</tr>
<tr>
<td style="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_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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) pertaining to income (loss) from continuing operations.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<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_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 230<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123444420&amp;loc=d3e33268-110906<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_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations</td>
</tr>
<tr>
<td style="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_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>The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4297-108586<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_IncreaseDecreaseInOperatingCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of all assets and liabilities used in 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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_IncreaseDecreaseInOperatingCapital</td>
</tr>
<tr>
<td style="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 activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3521-108585<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_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="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 activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3521-108585<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_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="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 activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3536-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3521-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<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_OtherNoncashIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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) included in net income that results in no cash inflow (outflow), 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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_OtherNoncashIncomeExpense</td>
</tr>
<tr>
<td style="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_PaymentForContingentConsiderationLiabilityFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<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_PaymentForContingentConsiderationLiabilityFinancingActivities</td>
</tr>
<tr>
<td style="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_PaymentsOfDebtIssuanceCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 paid to third parties in connection with debt origination, which will be amortized over the remaining maturity period of the associated long-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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<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_PaymentsOfDebtIssuanceCosts</td>
</tr>
<tr>
<td style="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_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a business, net of the cash acquired from the purchase.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3213-108585<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_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3213-108585<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3255-108585<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_RepaymentsOfDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 during the period from the repayment of aggregate short-term and long-term debt. Excludes payment of capital lease obligations.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3291-108585<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_RepaymentsOfDebt</td>
</tr>
<tr>
<td style="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_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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_ShareBasedCompensation</td>
</tr>
<tr>
<td style="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_SupplementalCashFlowInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SupplementalCashFlowInformationAbstract</td>
</tr>
<tr>
<td style="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>21
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935407584">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Description of the Business<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract', window );"><strong>Description of the Business</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_BusinessDescriptionAndBasisOfPresentationTextBlock', window );">Description of the Business</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;1&#160;- Description of the Business</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The Descartes Systems Group&#160;Inc. (&#8220;Descartes&#8221;, &#8220;Company&#8221;, &#8220;our&#8221; or &#8220;we&#8221;) is a provider of global logistics technology solutions. Customers use our modular, software-as-a-service (&#8220;SaaS&#8221;) and data solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access and analyze global trade data; research and perform trade tariff and duty calculations; file customs and security documents for imports and exports;&#160;and complete numerous other logistics processes by participating in a large, collaborative multi-modal logistics community. Our pricing model provides our customers with flexibility in purchasing our solutions either on a subscription, transactional or perpetual license basis. Our primary focus is on serving transportation providers (air, ocean and truck modes), logistics service providers (including third-party logistics providers, freight forwarders and customs brokers) and distribution-intensive companies for which logistics is either a key or a defining part of their own product or service offering, or for which our solutions can provide an opportunity to reduce costs, improve service levels, or support growth by optimizing the use of assets and information.</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_BusinessDescriptionAndBasisOfPresentationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 business description and basis of presentation concepts.  Business description describes the nature and type of organization including but not limited to organizational structure as may be applicable to holding companies, parent and subsidiary relationships, business divisions, business units, business segments, affiliates and information about significant ownership of the reporting entity.  Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -URI http://asc.fasb.org/topic&amp;trid=2122369<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -URI http://asc.fasb.org/topic&amp;trid=2122149<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -URI http://asc.fasb.org/topic&amp;trid=2134479<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_BusinessDescriptionAndBasisOfPresentationTextBlock</td>
</tr>
<tr>
<td style="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_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract</td>
</tr>
<tr>
<td style="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>22
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935350384">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_AccountingPoliciesAbstract', window );"><strong>Basis of Presentation</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 );">Basis of Presentation</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;2&#160;&#8211;Basis of Presentation</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The accompanying unaudited condensed consolidated financial statements are presented in United States (&#8220;US&#8221;) dollars and are prepared in accordance with generally accepted accounting principles in the US (&#8220;GAAP&#8221;) and the rules&#160;and regulations of the Canadian Securities Administrators and US Securities and Exchange Commission (&#8220;SEC&#8221;) for the preparation of condensed interim financial statements. Accordingly, these unaudited condensed consolidated financial statements do not include all of the information and notes required for compliance with GAAP for annual financial statements. These statements should be read in conjunction with our audited annual consolidated financial statements prepared in accordance with GAAP for the fiscal&#160;year ended January&#160;31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The unaudited condensed consolidated financial statements reflect all adjustments, which are, in the opinion of management, necessary for a fair presentation of results for the interim periods presented. The preparation of these unaudited condensed consolidated financial statements requires management to make estimates and assumptions that affect the amounts reported in the unaudited condensed consolidated financial statements and the accompanying notes. Actual results could differ from these estimates and the results of operations for the interim period should not be considered indicative of results to be expected for the full&#160;year ending January&#160;31, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The world continues to experience a global pandemic related to the spread of the COVID-19 virus (the &#8220;Pandemic&#8221;).</span><span style="font-family:'Verdana';"> The Pandemic has had disruptive effects in countries in which the Company operates, and the future impacts of the Pandemic and any resulting economic impact are largely unknown and rapidly evolving. As the impacts of the Pandemic continue to evolve, estimates and assumptions about future events and their effects cannot be determined with certainty and therefore require increased judgment. The future impact of Pandemic uncertainties could result in a significant impact on the reported amounts of assets, liabilities, revenue and expenses in these and any future consolidated financial statements. Examples of accounting estimates and judgments that may be impacted by the Pandemic include, but are not limited to; revenue recognition, impairment of goodwill and intangible assets and provisions for credit losses.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Our fiscal&#160;year commences on February&#160;1</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each&#160;year and ends on January&#160;31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the following&#160;year. Our fiscal&#160;year, which ends on January&#160;31, 2023, is referred to as the &#8220;current fiscal&#160;year&#8221;, &#8220;fiscal 2023&#8221;, &#8220;2023&#8221; or using similar words. Our previous fiscal&#160;year, which ended on January&#160;31, 2022, is referred to as the &#8220;previous fiscal&#160;year&#8221;, &#8220;fiscal 2022&#8221;, &#8220;2022&#8221; or using similar words. Other fiscal&#160;years are referenced by the </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">applicable&#160;year during which the fiscal&#160;year ends. For example, &#8220;2024&#8221; refers to the annual period ending January&#160;31, 2024 and the &#8220;fourth quarter of 2024&#8221; refers to the quarter ending January&#160;31, 2024.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The significant accounting policies used in preparing these condensed consolidated financial statements are unchanged from those disclosed in the Company&#8217;s fiscal 2022 annual consolidated financial statements and have been applied consistently to all periods presented in these condensed consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Recently issued accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In October&#160;2021, the FASB issued Accounting Standards Update 2021-08, &#8220;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers&#8221; (&#8220;ASU 2021-08&#8221;). ASU 2021-08 provides guidance on how to recognize and measure acquired contract assets and liabilities from revenue contracts in a business combination. ASU 2021-08 is effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2022, which will be our fiscal&#160;year beginning February&#160;1, 2023 (fiscal 2024). Early adoption is permitted. The Company will adopt this guidance in the first quarter of fiscal 2024. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures</span><span style="font-family:'Verdana';">.</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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123372394&amp;loc=d3e18726-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -URI http://asc.fasb.org/topic&amp;trid=2122369<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>23
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932860960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_BusinessCombinationAndAssetAcquisitionAbstract', window );"><strong>Acquisitions</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_BusinessCombinationDisclosureTextBlock', window );">Acquisitions</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;3&#160;&#8211; Acquisitions</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2023 Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On February&#160;9, 2022, Descartes acquired all of the shares of NetCHB, LLC (&#8220;NetCHB&#8221;), a provider of customs filing solutions in the US. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$38.7</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$60.0</span><span style="font-family:'Verdana';"> million based on NetCHB achieving revenue-based targets over the first </span><span style="font-family:'Verdana';">two&#160;years</span><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent considerations was valued at </span><span style="font-family:'Verdana';">$13.9</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before February&#160;9, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On April&#160;21, 2022, Descartes acquired substantially all of the assets of Foxtrot,&#160;Inc. (&#8220;Foxtrot&#8221;), a provider of machine learning-based mobile route execution solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$4.2</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before April&#160;21, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On June&#160;3, 2022, Descartes acquired all of the shares of XPS Technologies, LLC (&#8220;XPS&#8221;), a provider of ecommerce multi-carrier parcel shipping solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$61.1</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$75.0</span><span style="font-family:'Verdana';"> million based on XPS achieving revenue-based targets over the first </span><span style="font-family:'Verdana';">two&#160;years</span><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent considerations was valued at </span><span style="font-family:'Verdana';">$9.4</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$1.5</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$1.5</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before June&#160;3, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the businesses acquired during fiscal 2023, we incurred acquisition-related costs of </span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$0.5</span><span style="font-family:'Verdana';"> million for the three and six&#160;month periods ended July&#160;31, 2022, respectively. The acquisition-related costs were primarily for advisory services and are included in other charges in our condensed consolidated statements of operations. During the three and six&#160;month periods ended July&#160;31, 2022, we have recognized revenues of </span><span style="font-family:'Verdana';">$4.9</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$6.9</span><span style="font-family:'Verdana';"> million, respectively, and net income of </span><span style="font-family:'Verdana';">$0.9</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$1.6</span><span style="font-family:'Verdana';"> million, respectively, from NetCHB, Foxtrot and XPS since the date of acquisition in our condensed consolidated statements of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The preliminary purchase price allocation for the businesses acquired during 2023, which have not been finalized, is as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to NetCHB (</span><span style="font-family:'Verdana';">$658</span><span style="font-family:'Verdana';">), Foxtrot (</span><span style="font-family:'Verdana';">Nil</span><span style="font-family:'Verdana';">) and XPS (</span><span style="font-family:'Verdana';">$3,932</span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 38,664</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,228</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 61,096</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 103,988</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,948</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,425</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 23,373</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 51</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 74</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 825</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 950</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 52,663</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,302</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 71,346</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 128,311</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 469</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 835</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,228</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,532</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (367)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (14)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,491)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,872)</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (336)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,120)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,456)</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 102</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 485</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,383)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (796)</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 10,900</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 650</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,650</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 14,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,640</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 20,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,740</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 64</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 164</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,700</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26,797</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,527</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 43,529</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 71,853</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 52,663</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,302</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 71,346</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 128,311</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The above transactions were accounted for using the acquisition method in accordance with ASC Topic 805, &#8220;Business Combinations&#8221;. The purchase price allocations in the table above represents our estimates of the allocation of the purchase price and the fair value of net assets acquired. The preliminary purchase price allocations may differ from the final purchase price allocation, and these differences may be material. Revisions to the allocations will occur as additional information about the fair value of assets and liabilities becomes available. The final purchase price allocations will be completed within one&#160;year from the acquisition date.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The acquired intangible assets are being amortized over their estimated useful lives as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">11 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The goodwill on the NetCHB, Foxtrot and XPS acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the NetCHB, Foxtrot and XPS acquisitions are deductible for tax purposes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2022 Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On February&#160;26, 2021, Descartes acquired all of the shares of VitaDex Solutions, LLC, doing business as QuestaWeb (&#8220;QuestaWeb&#8221;), a US-based provider of foreign trade zone and customs compliance solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$35.9</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.6</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.5</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million. The purchase price was finalized in the three&#160;month period ended January&#160;31, 2022 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On May&#160;7, 2021, Descartes acquired all of the shares of Portrix Logistics Software GmbH (&#8220;Portrix&#8221;), a provider of multimodal rate management solutions for logistics services providers. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$25.2</span><span style="font-family:'Verdana';"> million (EUR </span><span style="font-family:'Verdana';">20.7</span><span style="font-family:'Verdana';"> million), net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three&#160;month period ended April&#160;30, 2022 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July&#160;8, 2021, Descartes acquired all of the shares of GreenMile, LLC (&#8220;GreenMile&#8221;), a provider of cloud-based mobile route execution solutions for food, beverage, and broader distribution verticals. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$29.2</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to </span><span style="font-family:'Verdana';">$10.0</span><span style="font-family:'Verdana';"> million in cash is payable if certain revenue performance targets are met by GreenMile in the </span><span style="font-family:'Verdana';">two&#160;years</span><span style="font-family:'Verdana';"> following the acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$3.3</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$1.1</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$1.0</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million. The purchase price was finalized in the three&#160;month period ended July&#160;31, 2022 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Pro Forma Results of Operations (Unaudited)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired XPS, Foxtrot, NetCHB, GreenMile, Portrix and QuestaWeb as of February&#160;1, 2021.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">This pro forma information is for information purposes only and does not purport to represent what our actual results of operations for the periods presented would have been had the acquisitions of XPS, Foxtrot, NetCHB, GreenMile, Portrix and QuestaWeb occurred at February&#160;1, 2021, or to project our results of operations for any future period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 124,237</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 113,126</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 245,151</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 222,582</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 22,998</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 24,398</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 46,521</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 43,808</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.27</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.29</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.55</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.52</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.27</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.28</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.54</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.51</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</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_BusinessCombinationAndAssetAcquisitionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessCombinationAndAssetAcquisitionAbstract</td>
</tr>
<tr>
<td style="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_BusinessCombinationDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -URI http://asc.fasb.org/topic&amp;trid=2303972<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_BusinessCombinationDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>24
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932802736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_FairValueDisclosuresAbstract', window );"><strong>Fair Value Measurements</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 );">Fair Value Measurements</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;4&#160;&#8211; Fair Value Measurements</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">ASC Topic 820 &#8220;Fair Value Measurements and Disclosures&#8221; (Topic 820) defines fair value as the price that would be received upon sale of an asset or paid upon transfer of a liability in an orderly transaction between market participants at the measurement date and in the principal or most advantageous market for that asset or liability. The fair value, in this context, should be calculated based on assumptions that market participants would use in pricing the asset or liability, not on assumptions specific to the entity. In addition, </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">the fair value of liabilities should include consideration of non-performance risk, including our own credit risk.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Topic 820 establishes a fair value hierarchy which prioritizes the inputs used in the valuation methodologies in measuring fair value into three levels:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 1&#8212;inputs are based upon unadjusted quoted prices for identical instruments traded in active markets.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 2&#8212;inputs are based upon quoted prices for similar instruments in active markets, quoted prices for identical or similar instruments in markets that are not active, and model-based valuation techniques for which all significant assumptions are observable in the market or can be corroborated by observable market data for substantially the full term of the assets or liabilities.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">&#9679;</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 3&#8212;inputs are generally unobservable and typically reflect management&#8217;s estimates of assumptions that market participants would use in pricing the asset or liability. The fair values are therefore determined using model-based techniques that include option pricing models, discounted cash flow models, and similar techniques.</span></td></tr></table><div style="margin-top:12pt;"/><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The carrying amounts of the Company&#8217;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value (a Level 2 measurement) due to their short maturities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the Company&#8217;s financial instruments measured at fair value on a recurring basis as of July&#160;31, 2022:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 10,237</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 10,237</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 27,579</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 27,579</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the Company&#8217;s financial instruments measured at fair value on a recurring basis as of January&#160;31, 2022:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Level&#160;1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Level&#160;2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Level&#160;3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Total</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,863</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,863</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,990</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,990</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The Company enters into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain future share-based compensation expenses. The equity derivative contracts are not designated as hedge instruments and the Company does not hold derivatives for speculative purposes. As at July&#160;31, 2022, we had equity derivatives for </span><span style="font-family:'Verdana';">281,768</span><span style="font-family:'Verdana';"> Descartes common shares with a weighted average purchase price of $</span><span style="font-family:'Verdana';">32.79</span><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The fair value of equity contract derivatives is </span><span style="font-family:'Verdana';">determined utilizing a valuation model</span><span style="font-family:'Verdana';"> based on the quoted market value of our common shares at the balance sheet date (Level 2 fair value inputs). The fair value of equity contract derivatives is recorded as other current assets and gains and losses are recorded in general and </span><span style="font-family:'Verdana';">administrative expenses in the condensed consolidated financial statements. During the three and six&#160;months ended July&#160;31, 2022, we recognized an expense (recovery) in general and administrative expenses of </span><span style="font-family:'Verdana';">($1.9)</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$0.6</span><span style="font-family:'Verdana';"> million, respectively, compared to an expense (recovery) of $</span><span style="font-family:'Verdana';">(2.4)</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">($2.5)</span><span style="font-family:'Verdana';"> million for the same periods of fiscal 2022, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the fair value measurements of contingent consideration in Level 3 of the fair value hierarchy:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;3</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,990</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increase from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 23,373</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (10,517)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Charges through profit or loss</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,833</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (100)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 27,579</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Estimates of the fair value of contingent consideration is performed by the Company on a quarterly basis. Key unobservable inputs include </span><span style="-sec-ix-hidden:Hidden_pSZxK8rp70Ke_RaEGReiMQ;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">revenue</span></span><span style="font-family:'Verdana';"> </span><span style="-sec-ix-hidden:Hidden_EhMWg6eEBEe5DICOqp8ajg;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">growth</span></span><span style="font-family:'Verdana';"> rates and the discount rates applied (</span><span style="font-family:'Verdana';">10%</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">13%</span><span style="font-family:'Verdana';">). The estimated fair value increases as the annual revenue growth rate increases and as the discount rate decreases and vice versa.</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_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<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>25
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932734144">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Trade Accounts Receivable<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_ReceivablesAbstract', window );"><strong>Trade Accounts Receivable</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 );">Trade Accounts Receivable</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;5&#160;&#8211; Trade Accounts Receivable</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 50,869</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 43,565</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Less: Provision for credit losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,956)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,860)</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48,913</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 41,705</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Included in accounts receivable are unbilled receivables in the amount of </span><span style="font-family:'Verdana';">$0.9</span><span style="font-family:'Verdana';"> million as at July&#160;31, 2022 (</span><span style="font-family:'Verdana';">$0.5</span><span style="font-family:'Verdana';"> million as at January&#160;31, 2022). </span><span style="font-family:'Verdana';">No single customer accounted for more than </span><span style="font-family:'Verdana';">10%</span><span style="font-family:'Verdana';"> of the accounts receivable balance as of July&#160;31, 2022 and January&#160;31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the provision for credit losses as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Provision</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">for&#160;Credit</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Losses</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,860</span></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current period provision for expected losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 232</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Write-offs charged against the provision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (114)</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (22)</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,956</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</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_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 a 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -URI http://asc.fasb.org/subtopic&amp;trid=2196772<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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ReceivablesAbstract</td>
</tr>
<tr>
<td style="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>26
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932867072">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Receivables<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_dsgx_OtherReceivablesDisclosureAbstract', window );"><strong>Other Receivables.</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_dsgx_OtherReceivablesTextBlock', window );">Other Receivables</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;6&#160;&#8211; Other Receivables</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net working capital adjustments receivable from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 74</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 309</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,346</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 13,766</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,420</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,075</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At July&#160;31, 2022, </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$0.3</span><span style="font-family:'Verdana';"> million as at January&#160;31, 2022) of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.</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_dsgx_OtherReceivablesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Other Receivables Disclosure Abstract.</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;">dsgx_OtherReceivablesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_OtherReceivablesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 other receivables.</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;">dsgx_OtherReceivablesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932856480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventory<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_InventoryDisclosureAbstract', window );"><strong>Inventory</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 );">Inventory</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;7&#160;&#8211; Inventory</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">At July&#160;31, 2022 and January&#160;31, 2022, inventory is entirely comprised of finished goods inventory. Finished goods inventory primarily consists of hardware and related parts for mobile asset units held for sale. For both the three and six&#160;month periods ended July&#160;31, 2022, the provision for excess or obsolete inventories recorded in cost of revenues was nominal, compared to nominal </span><span style="font-family:'Verdana';">during the same periods of fiscal 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_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI http://asc.fasb.org/topic&amp;trid=2126998<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>28
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935390480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property and Equipment<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_PropertyPlantAndEquipmentAbstract', window );"><strong>Property and Equipment</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 );">Property and Equipment</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;8&#160;&#8211; Property and Equipment</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 42,553</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 40,937</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,629</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,553</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 822</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,680</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,635</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Assets under construction</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 469</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 524</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 47,355</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 45,471</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated depreciation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 32,620</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 31,660</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,321</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,257</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 591</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 531</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,423</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,206</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35,955</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 34,654</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,400</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,817</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</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_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99893-112916<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -URI http://asc.fasb.org/topic&amp;trid=2155823<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=SL120174063-112916<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99779-112916<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>29
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932838080">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_IntangibleAssetsNetExcludingGoodwillAbstract', window );"><strong>Intangible Assets</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_IntangibleAssetsDisclosureTextBlock', window );">Intangible Assets</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;9&#160;- Intangible Assets</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 266,481</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 251,402</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 355,275</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 326,411</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,990</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 9,038</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13,791</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,306</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 644,537</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 599,157</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated amortization</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 141,408</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 135,380</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 234,197</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 218,953</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,894</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6,677</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,473</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,538</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 391,972</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 369,548</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 252,565</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 229,609</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. The change in intangible assets during the six&#160;month period ended July&#160;31, 2022 is primarily due to the acquisitions of NetCHB, Foxtrot and XPS offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Intangible assets with a finite life are amortized into income over their useful lives. Amortization expense for existing intangible assets is expected to be </span><span style="font-family:'Verdana';">$252.6</span><span style="font-family:'Verdana';"> million over the following periods: </span><span style="font-family:'Verdana';">$29.5</span><span style="font-family:'Verdana';"> million for the remainder of 2023, </span><span style="font-family:'Verdana';">$48.9</span><span style="font-family:'Verdana';"> million for 2024, </span><span style="font-family:'Verdana';">$45.8</span><span style="font-family:'Verdana';"> million for 2025, </span><span style="font-family:'Verdana';">$41.5</span><span style="font-family:'Verdana';"> million for 2026, </span><span style="font-family:'Verdana';">$26.9</span><span style="font-family:'Verdana';"> million </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">for 2027 and </span><span style="font-family:'Verdana';">$60.0</span><span style="font-family:'Verdana';"> million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes no future adjustments to acquired intangible assets.</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_IntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 or part of the information related to intangible 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -URI http://asc.fasb.org/topic&amp;trid=2144416<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_IntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="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_IntangibleAssetsNetExcludingGoodwillAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IntangibleAssetsNetExcludingGoodwillAbstract</td>
</tr>
<tr>
<td style="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>30
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932746304">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_dsgx_GoodwillDisclosureAbstract', window );"><strong>Goodwill</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_GoodwillDisclosureTextBlock', window );">Goodwill</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;10&#160;&#8211; Goodwill</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Goodwill is recorded when the consideration paid for an acquisition of a business exceeds the fair value of identifiable net tangible and intangible assets acquired. The following table summarizes the changes in goodwill since January&#160;31, 2021:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 608,761</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 565,177</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of QuestaWeb</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 21,691</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Portrix</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 15,032</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of GreenMile</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 12,968</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of NetCHB</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26,797</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Foxtrot</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,527</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of XPS</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 43,529</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Adjustments on account of foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (8,812)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (6,107)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 671,802</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 608,761</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</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_dsgx_GoodwillDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Goodwill Disclosure [Abstract]</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;">dsgx_GoodwillDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_GoodwillDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -URI http://asc.fasb.org/subtopic&amp;trid=2144439<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_GoodwillDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932860960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Liabilities<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_AccruedLiabilitiesCurrentAbstract', window );"><strong>Accrued Liabilities</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 );">Accrued Liabilities</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;11&#160;- Accrued Liabilities</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued compensation and benefits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 29,710</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 32,169</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued professional fees</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,445</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,318</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 40,261</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 22,955</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 71,416</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 56,442</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Other accrued liabilities include accrued expenses related to third party resellers and royalties, suppliers, accrued restructuring charges and accrued contingent acquisition purchase consideration.</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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a),20,24)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_AccruedLiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AccruedLiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932804736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Long-term Debt<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_DebtDisclosureAbstract', window );"><strong>Long-Term Debt</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_DebtDisclosureTextBlock', window );">Long-Term Debt</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;12&#160;&#8211; Long-Term Debt</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have a senior secured revolving credit facility in place with a syndicate of lenders. The facility is a </span><span style="font-family:'Verdana';">$350.0</span><span style="font-family:'Verdana';"> million revolving operating credit facility to be available for general corporate purposes, including the financing of ongoing working capital needs and acquisitions. With the approval of the lenders, the credit facility can be expanded to a total of </span><span style="font-family:'Verdana';">$500.0</span><span style="font-family:'Verdana';"> million. The credit facility has a </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> maturity with no fixed repayment dates prior to the end of the </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> term ending January&#160;2024. Borrowings under the credit facility are secured by a first charge over substantially all of Descartes&#8217; assets. Depending on the type of advance, interest rates under the revolving operating portion of the credit facility are based on the Canada or US prime rate, Bankers&#8217; Acceptance (BA), US dollar London Interbank Offered Rate (LIBOR) or the Secured Overnight Financing Rate (SOFR) plus an additional </span><span style="font-family:'Verdana';">0</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">250</span><span style="font-family:'Verdana';"> basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit agreement. A standby fee of between </span><span style="font-family:'Verdana';">20</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">40</span><span style="font-family:'Verdana';"> basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">No</span><span style="font-family:'Verdana';"> amounts were drawn on the credit facility as of July&#160;31, 2022 and the balance of </span><span style="font-family:'Verdana';">$350.0</span><span style="font-family:'Verdana';"> million is available for use. We were in compliance with the covenants of the credit facility as of July&#160;31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">As at July&#160;31, 2022, we had outstanding letters of credit of approximately </span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million as at January&#160;31, 2022), which were not related to our credit facility.</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_DebtDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DebtDisclosureAbstract</td>
</tr>
<tr>
<td style="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_DebtDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -URI http://asc.fasb.org/topic&amp;trid=2208564<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495334-112611<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495371-112611<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495371-112611<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(c))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495334-112611<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495334-112611<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495348-112611<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1B<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495371-112611<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<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_DebtDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>33
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932834656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_LeasesAbstract', window );"><strong>Leases</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_LesseeOperatingLeasesTextBlock', window );">Leases</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;13&#160;&#8211; Leases</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to </span><span style="font-family:'Verdana';">7&#160;years</span><span style="font-family:'Verdana';">, some of which include options to extend the leases for up to </span><span style="font-family:'Verdana';">5&#160;years</span><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The components of operating lease expense were as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,078</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,122</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,143</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,215</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Short-term lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 150</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 53</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 299</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 170</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,228</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,175</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,442</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,385</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Supplemental cash flow information related to operating leases was as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating cash outflows from operating leases included in measurement of lease liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,148</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,358</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,264</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,560</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">New ROU assets obtained in exchange for lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 122</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 833</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 346</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,161</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Supplemental information related to operating leases was as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average remaining lease term (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average discount rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2.1</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Maturities of operating lease liabilities were as follows as of July&#160;31, 2022:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:86.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Operating</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Years Ended January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Leases</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 5.75pt;"><span style="font-family:'Verdana';">Remainder of 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,003</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,349</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,299</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2026</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 929</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2027</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 308</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2028 and thereafter</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 178</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,066</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Less: imputed interest</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 368</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,698</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,604</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,094</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LeasesAbstract</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -URI http://asc.fasb.org/subtopic&amp;trid=77888251<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_LesseeOperatingLeasesTextBlock</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935400272">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments, Contingencies and Guarantees<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract', window );"><strong>Commitments, Contingencies and Guarantees</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_CommitmentsContingenciesAndGuaranteesTextBlock', window );">Commitments, Contingencies and Guarantees</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;14&#160;- Commitments, Contingencies and Guarantees</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Commitments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As described in Note&#160;2 to the audited consolidated financial statements for 2022 included in our 2022 Annual Report, we maintain deferred share unit (&#8220;DSU&#8221;) and cash-settled restricted share unit (&#8220;CRSU&#8221;) plans for our directors and employees. Any payments made pursuant to these plans are settled in cash. For DSUs and CRSUs, the units vest over time and the liability recognized at any given consolidated balance sheet date reflects only those units vested at that date that have not yet been settled in cash. As such, we had an unrecognized aggregate liability for the unvested DSUs and CRSUs of </span><span style="font-family:'Verdana';">$0.9</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$1.1</span><span style="font-family:'Verdana';"> million, respectively, at July&#160;31, 2022. The ultimate liability for any payment of DSUs and CRSUs is dependent on the trading price of our common shares. To partially offset our exposure to fluctuations in our stock price, we have entered into equity derivative contracts, including floating-rate equity forwards. As at July&#160;31, 2022, we had equity derivatives for </span><span style="font-family:'Verdana';">281,768</span><span style="font-family:'Verdana';"> Descartes common shares and a DSU liability for </span><span style="font-family:'Verdana';">281,768</span><span style="font-family:'Verdana';"> Descartes common shares, resulting in minimal net exposure resulting from changes to our share price.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Contingencies</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are subject to a variety of other claims and suits that arise from time to time in the ordinary course of our business. The consequences of these matters are not presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate potential liability is not currently expected to have a material effect on our results of operations or financial position.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Product Warranties</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we provide our customers with product warranties relating to the performance of our hardware, software and services. To date, we have not encountered material costs as a result of such obligations and have not accrued any liabilities related to such obligations in our condensed consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Business combination agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In respect of our acquisitions of Kontainers, ShipTrack, GreenMile, NetCHB and XPS, up to </span><span style="font-family:'Verdana';">$157.8</span><span style="font-family:'Verdana';"> million in cash may become payable if certain revenue performance targets are met in the </span><span style="font-family:'Verdana';">two&#160;years</span><span style="font-family:'Verdana';"> following the acquisition. </span><span style="font-family:'Verdana';">A balance of </span><span style="font-family:'Verdana';">$27.6</span><span style="font-family:'Verdana';"> million is accrued related to the fair value of this contingent consideration as at July&#160;31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Guarantees</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of business, we enter into a variety of agreements that may contain features that meet the definition of a guarantee under ASC Topic 460, &#8220;Guarantees&#8221;. The following lists our significant guarantees:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Intellectual property indemnification obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by third parties arising from the use of our products. In the event of such a claim, we are generally obligated to defend our customers against the claim and we are liable to pay damages and costs assessed against our customers that are payable as part of a final judgment or settlement. These intellectual property infringement indemnification clauses are not generally subject to any dollar limits and remain in force for the term of our license agreement with our customer, which license terms are typically perpetual. Historically, we have not encountered material costs as a result of such indemnification obligations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Other indemnification agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we enter into various agreements that provide general indemnities. These indemnities typically arise in connection with purchases and sales of assets, securities offerings or buy-backs, service contracts, administration of employee benefit plans, retention of officers and directors, membership agreements, customer financing transactions, and leasing transactions. In addition, our corporate by-laws provide for the indemnification of our directors and officers. Each of these indemnities requires us, in certain circumstances, to compensate the counterparties for various costs resulting from breaches of representations or obligations under such arrangements, or as a result of third party claims that may be suffered by the counterparty as a consequence of the transaction. We believe that the likelihood that we could incur significant liability under these obligations is remote. Historically, we have not made any significant payments under such indemnities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In evaluating estimated losses for the guarantees or indemnities described above, we consider such factors as the degree of probability of an unfavorable outcome and the ability to make a reasonable estimate of the amount of loss. We are unable to make a reasonable estimate of the maximum potential amount payable under such guarantees or indemnities as many of these arrangements do not specify a maximum potential dollar exposure or time limitation. The amount also depends on the outcome of future events and conditions, which cannot be predicted. Given the foregoing, to date, we have not accrued any liability in our condensed consolidated financial statements for the guarantees or indemnities described above.</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_dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>N/A</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;">dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_CommitmentsContingenciesAndGuaranteesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 commitments, contingencies, and guarantees.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -URI http://asc.fasb.org/topic&amp;trid=2155896<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -URI http://asc.fasb.org/topic&amp;trid=2127136<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -URI http://asc.fasb.org/topic&amp;trid=2144648<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_CommitmentsContingenciesAndGuaranteesTextBlock</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932097984">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Share Capital<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_EquityAbstract', window );"><strong>Share Capital</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_StockholdersEquityNoteDisclosureTextBlock', window );">Share Capital</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;15&#160;&#8211; Share Capital</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July&#160;16, 2020, we filed a final short-form base shelf prospectus (the &#8220;2020 Base Shelf Prospectus&#8221;), allowing us to offer and issue the following securities: (i)&#160;common shares; (ii)&#160;preferred shares; (iii)&#160;senior or subordinated unsecured debt securities; (iv)&#160;subscription receipts; (v)&#160;warrants; and (vi)&#160;securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. The aggregate initial offering price of securities that may be sold by us (or certain of our current or future shareholders) pursuant to the 2020 Base Shelf Prospectus during the </span><span style="font-family:'Verdana';">25</span><span style="font-family:'Verdana';">-</span><span style="font-family:'Verdana';">month period that the 2020 Base Shelf Prospectus, including any amendments thereto, remains valid was limited to an aggregate of </span><span style="font-family:'Verdana';">$1</span><span style="font-family:'Verdana';"> billion. </span><span style="font-family:'Verdana';">No</span><span style="font-family:'Verdana';"> securities were sold pursuant to the 2020 Base Shelf Prospectus, which was withdrawn in July&#160;2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July&#160;15, 2022, we filed the 2022 Base Shelf Prospectus, allowing us to offer and issue an unlimited quantity of the following securities during the </span><span style="font-family:'Verdana';">25</span><span style="font-family:'Verdana';">-month period following thereafter: (i)&#160;common shares; (ii)&#160;preferred shares; (iii)&#160;senior or subordinated unsecured debt securities; (iv)&#160;subscription receipts; (v)&#160;warrants; and (vi)&#160;securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. </span><span style="font-family:'Verdana';">No</span><span style="font-family:'Verdana';"> securities have yet been sold pursuant to the 2022 Base Shelf Prospectus.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On June&#160;7, 2022, Descartes announced a NCIB, commencing June&#160;10, 2022, to purchase up to approximately </span><span style="font-family:'Verdana';">7.4</span><span style="font-family:'Verdana';"> million common shares in the open market for cancellation. Under the NCIB, Descartes would be permitted to repurchase for cancellation, at its discretion on or before June 9, 2023, up to </span><span style="font-family:'Verdana';">10%</span><span style="font-family:'Verdana';"> of the &#8220;public float&#8221; (calculated in accordance with the rules&#160;of the TSX) of Descartes&#8217; issued and outstanding common shares. Any purchases under the NCIB will be subject to the terms and limitations applicable to such NCIB, and will be made through the facilities of the TSX, Nasdaq, other designated exchanges and/or alternative Canadian trading systems, or by such other means as may be permitted by the Ontario Securities Commission or other applicable Canadian Securities Administrators. </span><span style="font-family:'Verdana';">No</span><span style="font-family:'Verdana';"> common shares have yet been purchased pursuant to the NCIB.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">For the three and six&#160;month periods ended July&#160;31, 2022, cash flows provided from stock options and share units exercised were </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$0.5</span><span style="font-family:'Verdana';"> million, respectively, compared to </span><span style="font-family:'Verdana';">$0.9</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$1.5</span><span style="font-family:'Verdana';"> million the same periods in fiscal 2022, respectively.</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_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_EquityAbstract</td>
</tr>
<tr>
<td style="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_StockholdersEquityNoteDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496158-112644<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496158-112644<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496171-112644<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496171-112644<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496189-112644<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496158-112644<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -URI http://asc.fasb.org/topic&amp;trid=2208762<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496189-112644<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496158-112644<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496171-112644<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496189-112644<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 16<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496180-112644<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496158-112644<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(e)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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_StockholdersEquityNoteDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>36
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935385408">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per Share<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_EarningsPerShareAbstract', window );"><strong>Earnings Per Share</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 );">Earnings Per Share [Text Block]</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;16&#160;- Earnings Per Share</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table sets forth the computation of basic and diluted earnings per share (&#8220;EPS&#8221;) (number of shares in thousands):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.09%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.1%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income for purposes of calculating basic and diluted earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 22,902</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 23,176</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 46,017</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 41,597</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 84,783</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,566</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 84,774</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,534</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of employee stock options</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 401</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 421</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 433</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 417</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of restricted and performance share units</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,154</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,141</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,137</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,115</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average common and common equivalent shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 86,338</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 86,128</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 86,344</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 86,066</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.27</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.27</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.54</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.49</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.27</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.27</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.53</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.48</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the three&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021, </span><span style="font-family:'Verdana';">501,494</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">248,505</span><span style="font-family:'Verdana';"> options, respectively, were excluded from the calculation of diluted EPS as those options had an exercise price greater than or equal to the average market value of our common shares during the applicable periods and their inclusion would have been anti-dilutive. For the three&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021, the application of the treasury stock method excluded </span><span style="font-family:'Verdana';">135,776</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">91,081</span><span style="font-family:'Verdana';"> stock options, respectively, from the calculation of diluted EPS as the assumed proceeds from the unrecognized stock-based compensation expense of such options that are attributed to future service periods made such options anti-dilutive.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the six&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021, </span><span style="font-family:'Verdana';">6,960</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">248,505</span><span style="font-family:'Verdana';"> options, respectively, were excluded from the calculation of diluted EPS as those options had an exercise price greater than or equal to the average market value of our common shares during the applicable periods and their inclusion would have been anti-dilutive. For the six&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021, the application of the treasury stock method excluded </span><span style="font-family:'Verdana';">630,310</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">91,081</span><span style="font-family:'Verdana';"> stock options, respectively, from the calculation of diluted EPS as the assumed proceeds from the unrecognized stock-based compensation expense of such stock options that are attributed to future service periods made such stock options anti-dilutive.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the three&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021, the application of the treasury stock method excluded PSUs and RSUs of </span><span style="font-family:'Verdana';">97,991</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">77,441</span><span style="font-family:'Verdana';">, respectively, from the calculation of diluted EPS as the unrecognized stock-based compensation expense of such PSUs and RSUs that are attributed to future service periods made such PSUs and RSUs anti-dilutive.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">For the six&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021, the application of the treasury stock method excluded PSUs and RSUs of </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">77,441</span><span style="font-family:'Verdana';">, respectively, from the calculation of diluted EPS as the unrecognized stock-based compensation expense of such PSUs and RSUs that are attributed to future service periods made such PSUs and RSUs anti-dilutive.</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_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109243012&amp;loc=SL65017193-207537<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -URI http://asc.fasb.org/topic&amp;trid=2144383<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3630-109257<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>37
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935467136">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock-Based Compensation Plans</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 );">Stock-Based Compensation Plans</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;17&#160;- Stock-Based Compensation Plans</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Total estimated stock-based compensation expense recognized in our condensed consolidated statement of operations was as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cost of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 254</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 199</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 449</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 343</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Sales and marketing</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 675</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 918</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,160</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,279</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Research and development</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 490</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 388</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 857</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 668</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">General and administrative</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,317</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,510</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4,057</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,877</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Effect on net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,736</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,015</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,523</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,167</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Differences between how GAAP and applicable income tax laws treat the amount and timing of recognition of stock-based compensation expense may result in a deferred tax asset. We have recorded a valuation allowance against any such deferred tax asset except for </span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million at January&#160;31, 2022) recognized in the United States. We realized a nominal tax benefit in connection with stock options exercised during both the three and six&#160;month periods ended July&#160;31, 2022 and a nominal tax benefit for both the same periods in fiscal 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Stock Options</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of July&#160;31, 2022, we had </span><span style="font-family:'Verdana';">1,627,978</span><span style="font-family:'Verdana';"> stock options granted and outstanding under our shareholder-approved stock option plan and </span><span style="font-family:'Verdana';">2,700,683</span><span style="font-family:'Verdana';"> remained available for grant.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of July&#160;31, 2022, </span><span style="font-family:'Verdana';">$10.5</span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs related to non-vested stock option awards is expected to be recognized over a weighted average period of </span><span style="font-family:'Verdana';">2.9</span><span style="font-family:'Verdana';">&#160;years. The total fair value of stock options vested during the three and six&#160;month periods ended July&#160;31, 2022 was nominal and </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the three and six&#160;month periods ended July&#160;31, 2022, </span><span style="font-family:'Verdana';">92,422</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">354,699</span><span style="font-family:'Verdana';"> stock options, respectively, were granted compared to </span><span style="font-family:'Verdana';">1,000</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">269,025</span><span style="font-family:'Verdana';"> stock options for the same periods in fiscal 2022. The weighted average grant-date fair value of stock options granted during the six&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021 was </span><span style="font-family:'Verdana';">$18.91</span><span style="font-family:'Verdana';"> per option and </span><span style="font-family:'Verdana';">$16.85</span><span style="font-family:'Verdana';"> per option, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The weighted-average assumptions were as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:24.13%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected dividend yield (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected volatility (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 29.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 27.8</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Risk-free rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.7</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected option life (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">A summary of option activity under all of our plans is presented as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,319,279</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 42.35</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 41.5</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 354,699</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 62.57</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (32,337)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26.51</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (13,663)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 53.06</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,627,978</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 46.34</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 37.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,627,978</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 46.34</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 37.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 827,223</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 36.69</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26.9</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The total intrinsic value of stock options exercised during the three and six&#160;month periods ended July&#160;31, 2022 was </span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$1.3</span><span style="font-family:'Verdana';"> million, compared to </span><span style="font-family:'Verdana';">$1.4</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$2.0</span><span style="font-family:'Verdana';"> million during the same periods of fiscal 2022, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Performance Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of PSU activity is as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">PSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date&#160;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 777,538</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35.76</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 57.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 97,991</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 66.58</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Performance units issued</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 39,704</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 55.68</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 915,233</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 39.36</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 915,233</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 39.36</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 654,467</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 27.43</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45.3</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The aggregate intrinsic value represents the total pre-tax intrinsic value (the aggregate closing share price of our common shares on July&#160;31, 2022) that would have been received by PSU holders if all PSUs had been vested on July&#160;31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of July&#160;31, 2022, </span><span style="font-family:'Verdana';">$10.2</span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of </span><span style="font-family:'Verdana';">1.6</span><span style="font-family:'Verdana';">&#160;years. The total fair value of PSUs vested during the three and six&#160;month periods ended July&#160;31, 2022 was </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">$5.2</span><span style="font-family:'Verdana';"> million, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Restricted Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of RSU activity is as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">RSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date&#160;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 410,980</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 29.17</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 30.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63,651</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63.05</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 474,631</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 33.24</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 32.9</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 474,631</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 33.24</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 32.9</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 355,675</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 24.17</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 24.6</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The aggregate intrinsic value represents the total pre-tax intrinsic value (the aggregate closing share price of our common shares on July&#160;31, 2022) that would have been received by RSU holders if all RSUs had been vested on July&#160;31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of July&#160;31, 2022, </span><span style="font-family:'Verdana';">$5.6</span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of </span><span style="font-family:'Verdana';">1.9</span><span style="font-family:'Verdana';">&#160;years. The total fair value of RSUs vested during both the three and six&#160;month periods ended July&#160;31, 2022 was </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Deferred Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As at July&#160;31, 2022, the total number of DSUs held by participating directors was </span><span style="font-family:'Verdana';">281,768</span><span style="font-family:'Verdana';"> (</span><span style="font-family:'Verdana';">252,011</span><span style="font-family:'Verdana';"> at January&#160;31, 2022), representing an aggregate accrued liability of </span><span style="font-family:'Verdana';">$18.5</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$18.3</span><span style="font-family:'Verdana';"> million at January&#160;31, 2022). During the six&#160;month period ended July&#160;31, 2022, </span><span style="font-family:'Verdana';">29,757</span><span style="font-family:'Verdana';"> DSUs were granted. The fair value of the DSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to DSUs recognized during the three and six&#160;month periods ended July&#160;31, 2022 was </span><span style="font-family:'Verdana';">$2.7</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$0.3</span><span style="font-family:'Verdana';"> million, respectively, compared to </span><span style="font-family:'Verdana';">$3.0</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$3.2</span><span style="font-family:'Verdana';"> million for the same periods in fiscal 2022, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Cash-Settled Restricted Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of activity under our CRSU plan is as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">CRSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 24,428</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,948</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Vested and settled in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (9,463)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (74)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 22,839</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.6</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-vested at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 22,839</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.6</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We recognize the compensation cost of the CRSUs ratably over the service/vesting period relating to the grant and have recorded an aggregate accrued liability of </span><span style="font-family:'Verdana';">$0.6</span><span style="font-family:'Verdana';"> million at July&#160;31, 2022 (</span><span style="font-family:'Verdana';">$0.8</span><span style="font-family:'Verdana';"> million at January&#160;31, 2022). As at July&#160;31, 2022, the unrecognized aggregate liability for the unvested CRSUs was </span><span style="font-family:'Verdana';">$1.1</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$1.0</span><span style="font-family:'Verdana';"> million at January&#160;31, 2022). The fair value of the CRSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to CRSUs recognized during the three and six&#160;month periods ended July&#160;31, 2022 was </span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$0.4</span><span style="font-family:'Verdana';"> million, respectively, compared to </span><span style="font-family:'Verdana';">$0.3</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$0.6</span><span style="font-family:'Verdana';"> million for the same periods in fiscal 2022, respectively.</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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI http://asc.fasb.org/topic&amp;trid=2228938<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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935527200">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_IncomeTaxDisclosureAbstract', window );"><strong>Income Taxes.</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 );">Income Taxes</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;18&#160;- Income Taxes</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The effective tax rates (which is the provision for income taxes expressed as a&#160;percentage of income before income taxes) were </span><span style="font-family:'Verdana';">27.8%</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">26.0%</span><span style="font-family:'Verdana';"> for the three and six&#160;month periods ended July&#160;31, 2022, respectively, and </span><span style="font-family:'Verdana';">10.5%</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">15.3%</span><span style="font-family:'Verdana';"> for the same periods in fiscal 2022, respectively. The increase in the three and six&#160;month periods ended July&#160;31, 2022 compared to the same periods in fiscal 2022 was primarily due to a change in tax rate and release in valuation allowances on tax losses carried forward during the comparative period. The remainder of the differences are due to normal course movements and non-material items.</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_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="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 taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32857-109319<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330215-122817<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32809-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.5.Q1)<br> -URI http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32705-109319<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 270<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6424409&amp;loc=d3e44925-109338<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -URI http://asc.fasb.org/topic&amp;trid=2144680<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6424122&amp;loc=d3e41874-109331<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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>39
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935427824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Contract Balances, Performance Obligations and Contract Costs<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_RevenueFromContractWithCustomerAbstract', window );"><strong>Contract Balances, Performance Obligations and Contract Costs</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 );">Contract Balances, Performance Obligations and Contract Costs.</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;19&#160;&#8211; Contract Balances, Performance Obligations and Contract Costs</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Deferred Revenue</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the deferred revenue balance as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Deferred</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 58,700</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Recognition of previously deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (24,236)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferral of revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 36,034</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases from business combinations, net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,035</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (4,240)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 68,293</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 66,547</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,746</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Performance Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of July&#160;31, 2022, approximately </span><span style="font-family:'Verdana';">$371.9</span><span style="font-family:'Verdana';"> million of revenue is expected to be recognized in the future related to performance obligations that are unsatisfied (or partially unsatisfied) at the end of the reporting period. We expect to recognize revenue on approximately </span><span style="font-family:'Verdana';">80%</span><span style="font-family:'Verdana';"> of these remaining performance obligations over the next </span><span style="font-family:'Verdana';">24&#160;months</span><span style="font-family:'Verdana';"> with the balance recognized thereafter.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Contract Assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the contract assets balance as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contract</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Assets</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,443</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Transfers to trade receivables from contract assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (464)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,983</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,959</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Contract Costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Capitalized contract costs net of accumulated amortization is </span><span style="font-family:'Verdana';">$17.3</span><span style="font-family:'Verdana';"> million at July&#160;31, 2022 (</span><span style="font-family:'Verdana';">$16.6</span><span style="font-family:'Verdana';"> million at January&#160;31, 2022). Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates. For the three and six&#160;month periods ended July&#160;31, 2022, the amount of amortization included in sales and marketing expenses was </span><span style="font-family:'Verdana';">$1.4</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$2.8</span><span style="font-family:'Verdana';"> million, respectively, and </span><span style="font-family:'Verdana';">$1.2</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$2.2</span><span style="font-family:'Verdana';"> million for the same periods in fiscal 2022, respectively.</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_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -URI http://asc.fasb.org/topic&amp;trid=49130388<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130551-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130556-203045<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130554-203045<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130550-203045<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130554-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130554-203045<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130554-203045<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130558-203045<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130554-203045<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>40
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893937263328">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Charges<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_OtherIncomeAndExpensesAbstract', window );"><strong>Other Charges.</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_OtherIncomeAndOtherExpenseDisclosureTextBlock', window );">Other Charges</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;20&#160;- Other Charges</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Other charges are comprised of acquisition-related costs, contingent consideration adjustments and restructuring initiatives which have been undertaken from time to time under various restructuring plans. Acquisition-related costs primarily include advisory services, administrative costs and retention bonuses to employees joining by way of an acquisition, and collectively relate to completed and prospective acquisitions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following tables shows the components of other charges as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Acquisition-related costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 923</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 391</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,648</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 908</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 355</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,059</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Restructuring plans</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 23</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 64</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 26</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,289</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 414</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,771</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 934</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</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_OtherIncomeAndExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OtherIncomeAndExpensesAbstract</td>
</tr>
<tr>
<td style="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_OtherIncomeAndOtherExpenseDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 other income or other expense items (both operating and nonoperating). Sources of nonoperating income or nonoperating expense that may be disclosed, include amounts earned from dividends, interest on securities, profits (losses) on securities, net and miscellaneous other income or income deductions.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 720<br> -URI http://asc.fasb.org/topic&amp;trid=2122503<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 610<br> -URI http://asc.fasb.org/topic&amp;trid=49130413<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_OtherIncomeAndOtherExpenseDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935448832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Supplemental Cash Flow Information<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_SupplementalCashFlowElementsAbstract', window );"><strong>Supplemental Cash Flow Information</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 );">Supplemental Cash Flow Information</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;21&#160;&#8211; Supplemental Cash Flow Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following tables presents the cash flow changes in operating asset and liabilities:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.95%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.96%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,624)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 316</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (4,544)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,419</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,532</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 804</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,349</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,512</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Prepaid expenses and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (286)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,016)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 493</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,543)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Inventory</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (18)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (166)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 36</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (338)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accounts payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (293)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (94)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,135)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (214)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,783)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,379</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (3,862)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,467</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income taxes payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (296)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,295</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 127</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (308)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating leases</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (44)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (240)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (153)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 43</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,794</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,426</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,411</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,044</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 982</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,704</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 722</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,082</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">&#8203;</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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -URI http://asc.fasb.org/topic&amp;trid=2134446<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_SupplementalCashFlowElementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SupplementalCashFlowElementsAbstract</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935433056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segmented Information<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_SegmentReportingAbstract', window );"><strong>Segmented Information.</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_SegmentReportingDisclosureTextBlock', window );">Segmented Information</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note&#160;22&#160;- Segmented Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We review our operating results, assess our performance, make decisions about resources, and generate discrete financial information at the single enterprise level. Accordingly, we have determined that we operate in </span><span style="font-family:'Verdana';">one</span><span style="font-family:'Verdana';"> reportable business segment providing logistics technology solutions. The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 78,569</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 59,086</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 147,633</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 114,343</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30,746</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 31,861</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 65,377</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 62,948</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,171</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,209</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 17,457</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 17,581</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4,525</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,414</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,939</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,536</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 123,011</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 104,570</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 239,406</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 203,408</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Services</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 109,372</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 93,479</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 212,205</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 181,799</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Professional services and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 10,359</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,935</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 21,607</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,114</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">License</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,280</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,156</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,594</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,495</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 123,011</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 104,570</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 239,406</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 203,408</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">License revenues are derived from perpetual licenses granted to our customers to use our software products. Services revenues are comprised of ongoing transactional and/or subscription fees for use of our services and products by our customers and maintenance, which include revenues associated with maintenance and support of our services and products. Professional services and other revenues are comprised of professional services revenues from consulting, implementation and training services related to our services and products, hardware revenues and other revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table provides information by geographic area of operation for our long-lived assets. Long-lived assets represent property and equipment and intangible assets that are attributed to geographic areas.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total long-lived assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 145,327</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 102,649</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 36,476</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 43,922</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 74,569</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 84,943</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,593</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,912</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 263,965</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 240,426</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">&#8203;</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_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="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_SegmentReportingDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 34<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8981-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8721-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9031-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 26<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8844-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9038-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9054-108599<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8657-108599<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8721-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -URI http://asc.fasb.org/topic&amp;trid=2134510<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_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>43
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932831392">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation (Policies)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_AccountingPoliciesAbstract', window );"><strong>Basis of Presentation</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_BasisOfAccountingPolicyPolicyTextBlock', window );">Basis of Presentation</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The accompanying unaudited condensed consolidated financial statements are presented in United States (&#8220;US&#8221;) dollars and are prepared in accordance with generally accepted accounting principles in the US (&#8220;GAAP&#8221;) and the rules&#160;and regulations of the Canadian Securities Administrators and US Securities and Exchange Commission (&#8220;SEC&#8221;) for the preparation of condensed interim financial statements. Accordingly, these unaudited condensed consolidated financial statements do not include all of the information and notes required for compliance with GAAP for annual financial statements. These statements should be read in conjunction with our audited annual consolidated financial statements prepared in accordance with GAAP for the fiscal&#160;year ended January&#160;31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The unaudited condensed consolidated financial statements reflect all adjustments, which are, in the opinion of management, necessary for a fair presentation of results for the interim periods presented. The preparation of these unaudited condensed consolidated financial statements requires management to make estimates and assumptions that affect the amounts reported in the unaudited condensed consolidated financial statements and the accompanying notes. Actual results could differ from these estimates and the results of operations for the interim period should not be considered indicative of results to be expected for the full&#160;year ending January&#160;31, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The world continues to experience a global pandemic related to the spread of the COVID-19 virus (the &#8220;Pandemic&#8221;).</span><span style="font-family:'Verdana';"> The Pandemic has had disruptive effects in countries in which the Company operates, and the future impacts of the Pandemic and any resulting economic impact are largely unknown and rapidly evolving. As the impacts of the Pandemic continue to evolve, estimates and assumptions about future events and their effects cannot be determined with certainty and therefore require increased judgment. The future impact of Pandemic uncertainties could result in a significant impact on the reported amounts of assets, liabilities, revenue and expenses in these and any future consolidated financial statements. Examples of accounting estimates and judgments that may be impacted by the Pandemic include, but are not limited to; revenue recognition, impairment of goodwill and intangible assets and provisions for credit losses.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Our fiscal&#160;year commences on February&#160;1</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each&#160;year and ends on January&#160;31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the following&#160;year. Our fiscal&#160;year, which ends on January&#160;31, 2023, is referred to as the &#8220;current fiscal&#160;year&#8221;, &#8220;fiscal 2023&#8221;, &#8220;2023&#8221; or using similar words. Our previous fiscal&#160;year, which ended on January&#160;31, 2022, is referred to as the &#8220;previous fiscal&#160;year&#8221;, &#8220;fiscal 2022&#8221;, &#8220;2022&#8221; or using similar words. Other fiscal&#160;years are referenced by the </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">applicable&#160;year during which the fiscal&#160;year ends. For example, &#8220;2024&#8221; refers to the annual period ending January&#160;31, 2024 and the &#8220;fourth quarter of 2024&#8221; refers to the quarter ending January&#160;31, 2024.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The significant accounting policies used in preparing these condensed consolidated financial statements are unchanged from those disclosed in the Company&#8217;s fiscal 2022 annual consolidated financial statements and have been applied consistently to all periods presented in these condensed consolidated financial statements.</span></p><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_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Recently issued accounting pronouncements</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Recently issued accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In October&#160;2021, the FASB issued Accounting Standards Update 2021-08, &#8220;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers&#8221; (&#8220;ASU 2021-08&#8221;). ASU 2021-08 provides guidance on how to recognize and measure acquired contract assets and liabilities from revenue contracts in a business combination. ASU 2021-08 is effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2022, which will be our fiscal&#160;year beginning February&#160;1, 2023 (fiscal 2024). Early adoption is permitted. The Company will adopt this guidance in the first quarter of fiscal 2024. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures</span><span style="font-family:'Verdana';">.</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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="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_BasisOfAccountingPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).</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_BasisOfAccountingPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893933752576">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_BusinessCombinationAndAssetAcquisitionAbstract', window );"><strong>Acquisitions</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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock', window );">Schedule of preliminary purchase price allocation for businesses acquired</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to NetCHB (</span><span style="font-family:'Verdana';">$658</span><span style="font-family:'Verdana';">), Foxtrot (</span><span style="font-family:'Verdana';">Nil</span><span style="font-family:'Verdana';">) and XPS (</span><span style="font-family:'Verdana';">$3,932</span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 38,664</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,228</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 61,096</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 103,988</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,948</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,425</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 23,373</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 51</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 74</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 825</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 950</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 52,663</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,302</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 71,346</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 128,311</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 469</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 835</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,228</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,532</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (367)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (14)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,491)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,872)</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (336)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,120)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,456)</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 102</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 485</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,383)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (796)</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 10,900</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 650</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,650</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 14,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,640</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 20,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 35,740</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 64</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 164</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,700</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26,797</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,527</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 43,529</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 71,853</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 52,663</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,302</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 71,346</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 128,311</span></p></td></tr></table><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_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock', window );">Schedule of acquired intangible assets are being amortized over their estimated useful lives</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">11 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td></tr></table><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_BusinessAcquisitionProFormaInformationTextBlock', window );">Business acquisition on pro forma information</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 124,237</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 113,126</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 245,151</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 222,582</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 22,998</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 24,398</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 46,521</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 43,808</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.27</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.29</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.55</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.52</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.27</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.28</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.54</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.51</span></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_BusinessAcquisitionProFormaInformationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<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_BusinessAcquisitionProFormaInformationTextBlock</td>
</tr>
<tr>
<td style="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_BusinessCombinationAndAssetAcquisitionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessCombinationAndAssetAcquisitionAbstract</td>
</tr>
<tr>
<td style="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_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 characteristics, including initial carrying value, residual amount, weighted average useful life, of finite-lived intangible assets acquired during the period by major class. A major class is composed of intangible assets that can be grouped together because they are similar, either by nature or by their use in the operations of the company.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<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_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table  does not include leveraged buyouts.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1486-128463<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock</td>
</tr>
<tr>
<td style="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>45
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932046432">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_FairValueDisclosuresAbstract', window );"><strong>Fair Value Measurements</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_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock', window );">Schedule of financial instruments measured at fair value on recurring basis</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 10,237</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 10,237</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 27,579</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 27,579</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the Company&#8217;s financial instruments measured at fair value on a recurring basis as of January&#160;31, 2022:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Level&#160;1</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Level&#160;2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Level&#160;3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Total</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,863</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,863</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,990</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,990</span></p></td></tr></table><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_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock', window );">Schedule of changes in fair value measurements</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level&#160;3</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,990</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increase from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 23,373</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (10,517)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Charges through profit or loss</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,833</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (100)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 27,579</b></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_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="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_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fair value measurement of liabilities using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets), and gains or losses recognized in other comprehensive income (loss) and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs) by class of liability.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19279-110258<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_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 derivative assets at fair value.</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_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932812864">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Trade Accounts Receivable (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_ReceivablesAbstract', window );"><strong>Trade Accounts Receivable</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_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock', window );">Schedule of trade accounts receivable</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 50,869</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 43,565</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Less: Provision for credit losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,956)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,860)</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48,913</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 41,705</span></p></td></tr></table><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_AccountsReceivableAllowanceForCreditLossTableTextBlock', window );">Schedule of changes in provision for credit losses</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Provision</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">for&#160;Credit</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Losses</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,860</span></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current period provision for expected losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 232</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Write-offs charged against the provision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (114)</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (22)</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,956</b></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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<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_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ReceivablesAbstract</td>
</tr>
<tr>
<td style="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_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.3,4)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock</td>
</tr>
<tr>
<td style="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>47
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935602400">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Receivables (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_dsgx_OtherReceivablesDisclosureAbstract', window );"><strong>Other Receivables.</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_dsgx_OtherReceivablesTableTextBlock', window );">Schedule of other receivables</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net working capital adjustments receivable from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 74</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 309</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,346</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 13,766</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,420</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,075</span></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_dsgx_OtherReceivablesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Other Receivables Disclosure Abstract.</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;">dsgx_OtherReceivablesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_OtherReceivablesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Schedule of other receivables.</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;">dsgx_OtherReceivablesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935543072">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property and Equipment (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_PropertyPlantAndEquipmentAbstract', window );"><strong>Property and Equipment</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 and equipment</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 42,553</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 40,937</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,629</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,553</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 822</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,680</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,635</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Assets under construction</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 469</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 524</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 47,355</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 45,471</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated depreciation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 32,620</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 31,660</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,321</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,257</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 591</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 531</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,423</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,206</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35,955</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 34,654</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,400</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,817</span></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_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>49
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893937448144">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible Assets (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_IntangibleAssetsNetExcludingGoodwillAbstract', window );"><strong>Intangible Assets</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_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of intangible asset</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 266,481</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 251,402</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 355,275</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 326,411</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,990</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 9,038</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13,791</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,306</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 644,537</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 599,157</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated amortization</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 141,408</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 135,380</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 234,197</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 218,953</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,894</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6,677</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,473</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,538</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 391,972</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 369,548</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 252,565</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 229,609</span></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_IntangibleAssetsNetExcludingGoodwillAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IntangibleAssetsNetExcludingGoodwillAbstract</td>
</tr>
<tr>
<td style="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_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<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_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="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>50
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935430976">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_dsgx_GoodwillDisclosureAbstract', window );"><strong>Goodwill</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_ScheduleOfGoodwillTextBlock', window );">Schedule of goodwill</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 608,761</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 565,177</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of QuestaWeb</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 21,691</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Portrix</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 15,032</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of GreenMile</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 12,968</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of NetCHB</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26,797</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Foxtrot</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,527</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of XPS</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 43,529</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Adjustments on account of foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (8,812)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (6,107)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 671,802</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 608,761</span></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_dsgx_GoodwillDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Goodwill Disclosure [Abstract]</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;">dsgx_GoodwillDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_ScheduleOfGoodwillTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 goodwill by reportable segment and in total which includes a rollforward schedule.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13854-109267<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_ScheduleOfGoodwillTextBlock</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932255344">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Liabilities (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_AccruedLiabilitiesCurrentAbstract', window );"><strong>Accrued Liabilities</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 liabilities</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued compensation and benefits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 29,710</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 32,169</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued professional fees</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,445</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,318</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 40,261</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 22,955</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 71,416</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 56,442</span></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_AccruedLiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AccruedLiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893938189872">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_LeasesAbstract', window );"><strong>Leases</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_LeaseCostTableTextBlock', window );">Schedule of components of operating lease expense</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,078</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,122</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,143</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,215</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Short-term lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 150</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 53</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 299</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 170</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,228</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,175</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,442</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,385</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating cash outflows from operating leases included in measurement of lease liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,148</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,358</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,264</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,560</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">New ROU assets obtained in exchange for lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 122</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 833</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 346</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,161</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average remaining lease term (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average discount rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2.1</span></p></td></tr></table><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_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Schedule of maturities for operating lease liabilities</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:86.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Operating</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Years Ended January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Leases</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 5.75pt;"><span style="font-family:'Verdana';">Remainder of 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,003</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,349</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,299</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2026</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 929</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2027</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 308</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2028 and thereafter</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 178</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,066</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Less: imputed interest</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 368</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,698</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,604</b></p></td></tr><tr><td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,094</b></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_LeaseCostTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<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_LeaseCostTableTextBlock</td>
</tr>
<tr>
<td style="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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LeasesAbstract</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLiabilityMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<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_LesseeOperatingLeaseLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="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>53
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935859248">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_EarningsPerShareAbstract', window );"><strong>Earnings Per Share</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 computation of basic and diluted earnings per share</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table sets forth the computation of basic and diluted earnings per share (&#8220;EPS&#8221;) (number of shares in thousands):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.09%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.1%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income for purposes of calculating basic and diluted earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 22,902</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 23,176</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 46,017</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 41,597</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 84,783</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,566</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 84,774</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,534</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of employee stock options</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 401</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 421</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 433</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 417</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of restricted and performance share units</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,154</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,141</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,137</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,115</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average common and common equivalent shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 86,338</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 86,128</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 86,344</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 86,066</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.27</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.27</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.54</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.49</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.27</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.27</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 0.53</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.48</span></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_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893933678912">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock-Based Compensation Plans</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_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Schedule of estimated stock-based compensation expense recognized in condensed consolidated statement of operations</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cost of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 254</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 199</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 449</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 343</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Sales and marketing</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 675</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 918</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,160</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,279</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Research and development</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 490</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 388</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 857</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 668</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">General and administrative</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,317</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,510</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4,057</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,877</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Effect on net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,736</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,015</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,523</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,167</span></p></td></tr></table><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_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock', window );">Schedule of weighted-average assumptions</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:24.13%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected dividend yield (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> &#8212;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected volatility (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 29.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 27.8</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Risk-free rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.7</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected option life (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td></tr></table><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_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Schedule of stock option activity</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,319,279</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 42.35</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 41.5</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 354,699</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 62.57</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (32,337)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26.51</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (13,663)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 53.06</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,627,978</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 46.34</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 37.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,627,978</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 46.34</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 37.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 827,223</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 36.69</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26.9</b></p></td></tr></table><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_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock', window );">Summary of performance share units activity</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">PSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date&#160;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 777,538</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35.76</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 57.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 97,991</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 66.58</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Performance units issued</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 39,704</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 55.68</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 915,233</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 39.36</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 915,233</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 39.36</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.0</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 654,467</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 27.43</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45.3</b></p></td></tr></table><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_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock', window );">Summary of restricted share units activity</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">RSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date&#160;Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in&#160;millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 410,980</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 29.17</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 30.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63,651</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63.05</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 474,631</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 33.24</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 32.9</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 474,631</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 33.24</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 32.9</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 355,675</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 24.17</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.9</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 24.6</b></p></td></tr></table><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_dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock', window );">Summary cash settled restricted share unit plan activity</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number&#160;of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">CRSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life&#160;(years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 24,428</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,948</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Vested and settled in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (9,463)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (74)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 22,839</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.6</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-vested at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 22,839</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.6</b></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_dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Schedule of cash settled under restricted share units.</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;">dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="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_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=122041274&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5047-113901<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_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year.</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_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 number and weighted-average grant date fair value for outstanding performance shares.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock</td>
</tr>
<tr>
<td style="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>55
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935448032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Contract Balances, Performance Obligations and Contract Costs (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_RevenueFromContractWithCustomerAbstract', window );"><strong>Contract Balances, Performance Obligations and Contract Costs</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_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Schedule of the changes in the contract assets balance</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Deferred</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 58,700</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Recognition of previously deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (24,236)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferral of revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 36,034</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases from business combinations, net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,035</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (4,240)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 68,293</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 66,547</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,746</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contract</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Assets</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,443</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Transfers to trade receivables from contract assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (464)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,983</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at July 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,959</b></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_ContractWithCustomerAssetAndLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130551-203045<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_ContractWithCustomerAssetAndLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="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_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935477936">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Charges (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_OtherIncomeAndExpensesAbstract', window );"><strong>Other Charges.</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_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock', window );">Schedule of components of other charges</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Acquisition-related costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 923</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 391</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,648</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 908</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 355</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,059</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> &#8212;</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Restructuring plans</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 23</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 64</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 26</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,289</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 414</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,771</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 934</span></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_OtherIncomeAndExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OtherIncomeAndExpensesAbstract</td>
</tr>
<tr>
<td style="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_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 each detailed component of other operating costs and expenses that are applicable to sales and revenues, but not included in the cost of sales in the income statement.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.3)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<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_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock</td>
</tr>
<tr>
<td style="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>57
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932185584">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Supplemental Cash Flow Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_SupplementalCashFlowElementsAbstract', window );"><strong>Supplemental Cash Flow Information</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 changes in operating asset and liabilities</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.95%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.96%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,624)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 316</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (4,544)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,419</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,532</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 804</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,349</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,512</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Prepaid expenses and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (286)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,016)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 493</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,543)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Inventory</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (18)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (166)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 36</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (338)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accounts payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (293)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (94)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,135)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (214)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,783)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,379</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (3,862)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,467</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income taxes payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (296)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,295</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 127</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (308)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating leases</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (44)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (240)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (153)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 43</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,794</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,426</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,411</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,044</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 982</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.28%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,704</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 722</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,082</span></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_SupplementalCashFlowElementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SupplementalCashFlowElementsAbstract</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893933949040">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segmented Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_SegmentReportingAbstract', window );"><strong>Segmented Information.</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_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock', window );">Schedule of disaggregated revenue information by geographic location of customer and revenue</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 78,569</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 59,086</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 147,633</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 114,343</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30,746</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 31,861</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 65,377</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 62,948</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,171</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,209</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 17,457</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 17,581</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4,525</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,414</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,939</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,536</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 123,011</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 104,570</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 239,406</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 203,408</span></p></td></tr></table><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_ScheduleOfSegmentReportingInformationBySegmentTextBlock', window );">Schedule of segment reporting information, by segment</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Three&#160;Months&#160;Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Six&#160;Months&#160;Ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">July&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Services</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 109,372</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 93,479</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 212,205</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 181,799</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Professional services and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 10,359</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,935</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 21,607</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,114</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">License</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,280</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,156</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,594</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,495</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 123,011</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 104,570</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 239,406</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 203,408</span></p></td></tr></table><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_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock', window );">Schedule of disclosure on geographic areas, long-lived assets in individual foreign countries by country</a></td>
<td class="text"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">&#8203;</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">&#8203;</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;&#160;&#160;&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">July&#160;31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January&#160;31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total long-lived assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">&#160;&#160;</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 145,327</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 102,649</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 36,476</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 43,922</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 74,569</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 84,943</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,593</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,912</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">&#8203;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">&#160;</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 263,965</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">&#160;</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 240,426</span></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_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 names of foreign countries in which material long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets are located, and amount of such long-lived assets located in that country or foreign geographic area.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9038-108599<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_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 names of foreign countries from which revenue is material and the amount of revenue from external customers attributed to those countries. An entity may also provide subtotals of geographic information about groups of countries.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9038-108599<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_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfSegmentReportingInformationBySegmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 25<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8813-108599<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<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_ScheduleOfSegmentReportingInformationBySegmentTextBlock</td>
</tr>
<tr>
<td style="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_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893926447088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions (Details)<br> $ in Thousands, &#8364; in Millions</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Jun. 03, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Apr. 21, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Feb. 09, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jul. 08, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>May 07, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>May 07, 2021 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Feb. 26, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jul. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jul. 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jul. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jul. 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2022 </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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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="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>
</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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired</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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 61,096<span></span>
</td>
<td class="nump">$ 54,418<span></span>
</td>
<td class="nump">$ 103,988<span></span>
</td>
<td class="nump">$ 90,278<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_BusinessCombinationContingentConsiderationLiability', window );">Fair value of the contingent considerations</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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">27,579<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">27,579<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 12,990<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_BusinessCombinationAcquisitionRelatedCosts', window );">Acquisition-related costs</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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">923<span></span>
</td>
<td class="nump">$ 391<span></span>
</td>
<td class="nump">1,648<span></span>
</td>
<td class="nump">$ 908<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_BusinessAcquisitionAxis=dsgx_QuestawebMember', window );">QuestaWeb</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="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="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>
</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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="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>
</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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired</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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 35,900<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="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_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">600<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="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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">500<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="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_BusinessCombinationAcquiredReceivablesEstimatedUncollectible', window );">Estimate of contractual cash flows not expected to be collected</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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 100<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="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_BusinessAcquisitionAxis=dsgx_PortrixMember', window );">Portrix</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="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="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>
</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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="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>
</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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired</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">$ 25,200<span></span>
</td>
<td class="nump">&#8364; 20.7<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="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_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</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">700<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="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>
</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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</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">$ 700<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="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>
</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_BusinessAcquisitionAxis=dsgx_GreenmileMember', window );">GreenMile</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="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="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>
</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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="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>
</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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired</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="nump">$ 29,200<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="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="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_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</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="nump">1,100<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="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="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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</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="nump">1,000<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="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="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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Maximum potential performance-based contingent consideration</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="nump">$ 10,000<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="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="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_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Period for revenue performance targets</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">2 years<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="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="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_BusinessCombinationContingentConsiderationLiability', window );">Fair value of the contingent considerations</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="nump">$ 3,300<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="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="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_BusinessCombinationAcquiredReceivablesEstimatedUncollectible', window );">Estimate of contractual cash flows not expected to be collected</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="nump">$ 100<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="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="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_BusinessAcquisitionAxis=dsgx_Fiscal2023AcquisitionsMember', window );">Fiscal 2023 Acquisitions</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="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="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>
</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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="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>
</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_BusinessCombinationAcquisitionRelatedCosts', window );">Acquisition-related costs</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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">500<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_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual', window );">Amount of revenue recognized</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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,900<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_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual', window );">Amount of net income recognized</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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,600<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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC</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="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="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>
</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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="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>
</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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 38,700<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">38,664<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_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100<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="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="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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100<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="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="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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Maximum potential performance-based contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 60,000<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="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="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_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Period for revenue performance targets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 years<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="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="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_BusinessCombinationContingentConsiderationLiability', window );">Fair value of the contingent considerations</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 13,900<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="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="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_BusinessAcquisitionAxis=dsgx_FoxtrotMember', window );">Foxtrot</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="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="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>
</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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="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>
</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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,200<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="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">$ 4,228<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_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">700<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="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="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_us-gaap_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 700<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="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="text">&#160;<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_BusinessAcquisitionAxis=dsgx_XpsTechnologyLlcMember', window );">XPS Technology LLC</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="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="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>
</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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="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>
</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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired</a></td>
<td class="nump">$ 61,100<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="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="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>
</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_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Gross contractual amount of trade receivables acquired</a></td>
<td class="nump">1,500<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="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="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>
</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_BusinessCombinationAcquiredReceivablesFairValue', window );">Fair value of acquired trade receivables</a></td>
<td class="nump">1,500<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="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="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>
</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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Maximum potential performance-based contingent consideration</a></td>
<td class="nump">$ 75,000<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="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="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>
</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_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Period for revenue performance targets</a></td>
<td class="text">2 years<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="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="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>
</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_BusinessCombinationContingentConsiderationLiability', window );">Fair value of the contingent considerations</a></td>
<td class="nump">$ 9,400<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="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="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>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 period (following acquisition) over which contingent consideration is to be paid by the reporting entity if the acquired entity meets certain performance targets.</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;">dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="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_BusinessCombinationAcquiredReceivablesEstimatedUncollectible">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 receivables acquired in a business combination, excluding certain loans and debt securities acquired in a transfer (as defined), this element represents the best estimate at the acquisition date of the contractual cash flows not expected to be collected, by major class of receivable, such as loans, direct finance leases (as defined), and any other class of receivables.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<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_BusinessCombinationAcquiredReceivablesEstimatedUncollectible</td>
</tr>
<tr>
<td style="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_BusinessCombinationAcquiredReceivablesFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of acquired receivable from business combination, excluding certain loans and debt securities acquired in transfer.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<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_BusinessCombinationAcquiredReceivablesFairValue</td>
</tr>
<tr>
<td style="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_BusinessCombinationAcquiredReceivablesGrossContractualAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 receivables acquired in a business combination, excluding certain loans and debt securities acquired in a transfer (as defined), this element represents the gross contractual amounts receivable, by major class of receivable, such as loans, direct finance leases (as defined), and any other class of receivables.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<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_BusinessCombinationAcquiredReceivablesGrossContractualAmount</td>
</tr>
<tr>
<td style="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_BusinessCombinationAcquisitionRelatedCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 25<br> -Paragraph 23<br> -URI http://asc.fasb.org/extlink&amp;oid=123586518&amp;loc=d3e1043-128460<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_BusinessCombinationAcquisitionRelatedCosts</td>
</tr>
<tr>
<td style="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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contingent consideration arrangements recognized in connection with a business combination, this element represents an estimate of the high-end of the potential range (undiscounted) of the consideration which may be 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh</td>
</tr>
<tr>
<td style="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_BusinessCombinationContingentConsiderationLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 liability recognized arising from contingent consideration in a business combination.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116859824&amp;loc=d3e6819-128478<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6408-128476<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_BusinessCombinationContingentConsiderationLiability</td>
</tr>
<tr>
<td style="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_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 element represents the amount of earnings or loss of the acquiree since the acquisition date included in the consolidated income statement for 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<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_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual</td>
</tr>
<tr>
<td style="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_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 element represents the amount of revenue of the acquiree since the acquisition date included in the consolidated income statement for 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<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_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual</td>
</tr>
<tr>
<td style="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_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a business, net of the cash acquired from the purchase.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3213-108585<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_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="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_BusinessAcquisitionAxis=dsgx_QuestawebMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_QuestawebMember</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_BusinessAcquisitionAxis=dsgx_PortrixMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_PortrixMember</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_BusinessAcquisitionAxis=dsgx_GreenmileMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_GreenmileMember</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_BusinessAcquisitionAxis=dsgx_Fiscal2023AcquisitionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_Fiscal2023AcquisitionsMember</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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember</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_BusinessAcquisitionAxis=dsgx_FoxtrotMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_FoxtrotMember</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_BusinessAcquisitionAxis=dsgx_XpsTechnologyLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_XpsTechnologyLlcMember</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>60
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893926195280">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Apr. 21, 2022</div></th>
<th class="th"><div>Feb. 09, 2022</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, less cash acquired related to NetCHB ($658), Foxtrot (Nil) and XPS ($3,932)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 61,096<span></span>
</td>
<td class="nump">$ 54,418<span></span>
</td>
<td class="nump">$ 103,988<span></span>
</td>
<td class="nump">$ 90,278<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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Contingent consideration</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">23,373<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments payable</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">950<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_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</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">128,311<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,532<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,532<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,872)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,872)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,456)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,456)<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_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(796)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(796)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">128,311<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">128,311<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">71,853<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">71,853<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,650<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,650<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_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">35,740<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">35,740<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">164<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">164<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,700<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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, less cash acquired related to NetCHB ($658), Foxtrot (Nil) and XPS ($3,932)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 38,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">38,664<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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Contingent consideration</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">13,948<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments payable</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">51<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_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</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">52,663<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">469<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">469<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(367)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(367)<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_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">102<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">102<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">52,663<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">52,663<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26,797<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26,797<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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC | Customer agreements and relationships</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,900<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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC | Existing Technology</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">14,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">14,100<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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC | Trade names</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">64<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">64<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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC | Non-compete covenants</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">700<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_BusinessAcquisitionAxis=dsgx_FoxtrotMember', window );">Foxtrot</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, less cash acquired related to NetCHB ($658), Foxtrot (Nil) and XPS ($3,932)</a></td>
<td class="nump">$ 4,200<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">4,228<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments payable</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">74<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_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</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">4,302<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">835<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">835<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(14)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(14)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(336)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(336)<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_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">485<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">485<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,302<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,302<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,527<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,527<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_BusinessAcquisitionAxis=dsgx_FoxtrotMember', window );">Foxtrot | Customer agreements and relationships</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">650<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">650<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_BusinessAcquisitionAxis=dsgx_FoxtrotMember', window );">Foxtrot | Existing Technology</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,640<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,640<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_BusinessAcquisitionAxis=dsgx_XpsMember', window );">XPS</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, less cash acquired related to NetCHB ($658), Foxtrot (Nil) and XPS ($3,932)</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">61,096<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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred', window );">Contingent consideration</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">9,425<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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments', window );">Net working capital adjustments payable</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">825<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_BusinessCombinationConsiderationTransferred1', window );">Purchase price consideration</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">71,346<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets', window );">Current assets, excluding cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,228<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,228<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Current liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,491)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,491)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,120)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,120)<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_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet', window );">Net tangible assets (liabilities) assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,383)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,383)<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">71,346<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">71,346<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">43,529<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">43,529<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_BusinessAcquisitionAxis=dsgx_XpsMember', window );">XPS | Customer agreements and relationships</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,100<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_BusinessAcquisitionAxis=dsgx_XpsMember', window );">XPS | Existing Technology</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">20,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">20,000<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_BusinessAcquisitionAxis=dsgx_XpsMember', window );">XPS | Trade names</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100<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_BusinessAcquisitionAxis=dsgx_XpsMember', window );">XPS | Non-compete covenants</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="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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></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="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,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_dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Business acquisition cost of acquired entity working capital adjustments.</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;">dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 recognized as of the acquisition date for the identifiable tangible assets acquired in excess of (less than) the aggregate liabilities assumed.</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;">dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="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_BusinessCombinationConsiderationTransferred1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6613-128477<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6578-128477<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_BusinessCombinationConsiderationTransferred1</td>
</tr>
<tr>
<td style="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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 incurred by the acquirer as part of consideration transferred in a business combination.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6578-128477<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6405-128476<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6613-128477<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_BusinessCombinationConsiderationTransferredLiabilitiesIncurred</td>
</tr>
<tr>
<td style="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer, acquired at the acquisition date.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets</td>
</tr>
<tr>
<td style="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities</td>
</tr>
<tr>
<td style="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 revenue expected to be recognized as such within one year or the normal operating cycle, if longer, assumed at the acquisition date.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue</td>
</tr>
<tr>
<td style="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 identifiable intangible assets recognized as of the acquisition date.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=123455525&amp;loc=d3e2207-128464<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles</td>
</tr>
<tr>
<td style="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4845-128472<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="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_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 a business, net of the cash acquired from the purchase.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3213-108585<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_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</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_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember</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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember</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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember</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_BusinessAcquisitionAxis=dsgx_FoxtrotMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_FoxtrotMember</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_BusinessAcquisitionAxis=dsgx_XpsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_XpsMember</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>61
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893933626256">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jul. 31, 2022 </div>
<div>USD ($)</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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></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_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="nump">$ 658<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_BusinessAcquisitionAxis=dsgx_FoxtrotMember', window );">Foxtrot</a></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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</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_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="nump">0<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_BusinessAcquisitionAxis=dsgx_XpsMember', window );">XPS</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></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_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="nump">$ 3,932<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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="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_CashAcquiredFromAcquisition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 associated with the acquisition of business during the period (for example, cash that was held by the acquired 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3179-108585<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_CashAcquiredFromAcquisition</td>
</tr>
<tr>
<td style="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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember</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_BusinessAcquisitionAxis=dsgx_FoxtrotMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_FoxtrotMember</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_BusinessAcquisitionAxis=dsgx_XpsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_XpsMember</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>62
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893928185888">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Acquired Intangible Assets Useful Lives (Details)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jul. 31, 2022</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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Net CHB, LLC</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></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_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">13 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | Foxtrot</a></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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</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_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">13 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships | XPS</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></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_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">11 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology | Net CHB, LLC</a></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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</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_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">6 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology | Foxtrot</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></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_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">6 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember', window );">Existing Technology | XPS</a></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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</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_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">6 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | Net CHB, LLC</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></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_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">2 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names | XPS</a></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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</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_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">2 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | Net CHB, LLC</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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></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_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">5 years<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants | XPS</a></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_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</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_FiniteLivedIntangibleAssetUsefulLife', window );">Acquired intangible assets estimated useful lives (Year)</a></td>
<td class="text">5 years<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_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="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_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Useful life of finite-lived intangible assets, 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>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_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember</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_BusinessAcquisitionAxis=dsgx_FoxtrotMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_FoxtrotMember</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_BusinessAcquisitionAxis=dsgx_XpsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_XpsMember</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_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=dsgx_ExistingTechnologyMember</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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember</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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</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>63
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893926319664">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Acquisitions - Pro Forma Results of Operations (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_BusinessCombinationAndAssetAcquisitionAbstract', window );"><strong>Acquisitions</strong></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>
</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_BusinessAcquisitionsProFormaRevenue', window );">Revenues</a></td>
<td class="nump">$ 124,237<span></span>
</td>
<td class="nump">$ 113,126<span></span>
</td>
<td class="nump">$ 245,151<span></span>
</td>
<td class="nump">$ 222,582<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_BusinessAcquisitionsProFormaNetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 22,998<span></span>
</td>
<td class="nump">$ 24,398<span></span>
</td>
<td class="nump">$ 46,521<span></span>
</td>
<td class="nump">$ 43,808<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_EarningsPerShareAbstract', window );"><strong>Earnings Per Share</strong></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>
</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_BusinessAcquisitionProFormaEarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 0.27<span></span>
</td>
<td class="nump">$ 0.29<span></span>
</td>
<td class="nump">$ 0.55<span></span>
</td>
<td class="nump">$ 0.52<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_BusinessAcquisitionProFormaEarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 0.27<span></span>
</td>
<td class="nump">$ 0.28<span></span>
</td>
<td class="nump">$ 0.54<span></span>
</td>
<td class="nump">$ 0.51<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_BusinessAcquisitionProFormaEarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pro forma basic net income per share for a period as if the business combination or combinations had been completed at the beginning of a 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<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_BusinessAcquisitionProFormaEarningsPerShareBasic</td>
</tr>
<tr>
<td style="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_BusinessAcquisitionProFormaEarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pro forma diluted net income per share for a period as if the business combination or combinations had been completed at the beginning of a 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<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_BusinessAcquisitionProFormaEarningsPerShareDiluted</td>
</tr>
<tr>
<td style="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_BusinessAcquisitionsProFormaNetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<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_BusinessAcquisitionsProFormaNetIncomeLoss</td>
</tr>
<tr>
<td style="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_BusinessAcquisitionsProFormaRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<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_BusinessAcquisitionsProFormaRevenue</td>
</tr>
<tr>
<td style="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_BusinessCombinationAndAssetAcquisitionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessCombinationAndAssetAcquisitionAbstract</td>
</tr>
<tr>
<td style="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_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893937498736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements (Details)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jul. 31, 2022 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Jul. 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jul. 31, 2022 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Jul. 31, 2021 </div>
<div>USD ($)</div>
</th>
</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_dsgx_DerivativeInstrumentSharesOfCommonStockHeld', window );">Derivative Instrument, Shares of Common Stock Held (in shares) | shares</a></td>
<td class="nump">281,768<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">281,768<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_dsgx_DerivativeInstrumentCommonSharesHeldPerShare', window );">Derivative Instrument, Common Shares Held, Per Share (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 32.79<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 32.79<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_MeasurementInputTypeAxis=us-gaap_MeasurementInputLongTermRevenueGrowthRateMember', window );">Measurement Input, Long-term Revenue Growth Rate [Member] | Minimum</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>
</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_BusinessCombinationContingentConsiderationLiabilityMeasurementInput', window );">Estimated fair value consideration percentage</a></td>
<td class="nump">10<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10<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_MeasurementInputTypeAxis=us-gaap_MeasurementInputLongTermRevenueGrowthRateMember', window );">Measurement Input, Long-term Revenue Growth Rate [Member] | Maximum</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>
</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_BusinessCombinationContingentConsiderationLiabilityMeasurementInput', window );">Estimated fair value consideration percentage</a></td>
<td class="nump">13<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13<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_MeasurementInputTypeAxis=us-gaap_MeasurementInputDiscountRateMember', window );">Measurement Input, Discount Rate [Member] | Minimum</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>
</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_BusinessCombinationContingentConsiderationLiabilityMeasurementInput', window );">Estimated fair value consideration percentage</a></td>
<td class="nump">10<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10<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_MeasurementInputTypeAxis=us-gaap_MeasurementInputDiscountRateMember', window );">Measurement Input, Discount Rate [Member] | Maximum</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>
</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_BusinessCombinationContingentConsiderationLiabilityMeasurementInput', window );">Estimated fair value consideration percentage</a></td>
<td class="nump">13<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13<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_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember', window );">General and Administrative Expense [Member]</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>
</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_dsgx_ExpensesAndRecoveriesNet', window );">Expense (recovery) | $</a></td>
<td class="num">$ (1.9)<span></span>
</td>
<td class="num">$ (2.4)<span></span>
</td>
<td class="nump">$ 0.6<span></span>
</td>
<td class="num">$ (2.5)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_DerivativeInstrumentCommonSharesHeldPerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 per share amount of common shares held by certain derivative instruments entered into by the company.</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;">dsgx_DerivativeInstrumentCommonSharesHeldPerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_DerivativeInstrumentSharesOfCommonStockHeld">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 held by certain derivative instruments entered into by the company.</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;">dsgx_DerivativeInstrumentSharesOfCommonStockHeld</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ExpensesAndRecoveriesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 expenses (recovery) related to operating expenses in the operation statement.</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;">dsgx_ExpensesAndRecoveriesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_BusinessCombinationContingentConsiderationLiabilityMeasurementInput">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 input used to measure contingent consideration liability from business combination.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<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_BusinessCombinationContingentConsiderationLiabilityMeasurementInput</td>
</tr>
<tr>
<td style="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: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_us-gaap_MeasurementInputTypeAxis=us-gaap_MeasurementInputLongTermRevenueGrowthRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MeasurementInputTypeAxis=us-gaap_MeasurementInputLongTermRevenueGrowthRateMember</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_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RangeAxis=srt_MinimumMember</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_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RangeAxis=srt_MaximumMember</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_MeasurementInputTypeAxis=us-gaap_MeasurementInputDiscountRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MeasurementInputTypeAxis=us-gaap_MeasurementInputDiscountRateMember</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_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember</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>65
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893926308560">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Fair Value Measurements - Derivative Instruments at Fair Value (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems', window );"><strong>Derivative Instruments and Hedging Activities Disclosures [Line Items]</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_DerivativeAssets', window );">Equity derivative contracts</a></td>
<td class="nump">$ 10,237<span></span>
</td>
<td class="nump">$ 10,863<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_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="nump">27,579<span></span>
</td>
<td class="nump">12,990<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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Level 2</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_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems', window );"><strong>Derivative Instruments and Hedging Activities Disclosures [Line Items]</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_DerivativeAssets', window );">Equity derivative contracts</a></td>
<td class="nump">10,237<span></span>
</td>
<td class="nump">10,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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member', window );">Level 3</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_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems', window );"><strong>Derivative Instruments and Hedging Activities Disclosures [Line Items]</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_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration</a></td>
<td class="nump">$ 27,579<span></span>
</td>
<td class="nump">$ 12,990<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_BusinessCombinationContingentConsiderationLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 liability recognized arising from contingent consideration in a business combination.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116859824&amp;loc=d3e6819-128478<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6408-128476<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_BusinessCombinationContingentConsiderationLiability</td>
</tr>
<tr>
<td style="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_DerivativeAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226052-175313<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13433-108611<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<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_DerivativeAssets</td>
</tr>
<tr>
<td style="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_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems</td>
</tr>
<tr>
<td style="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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member</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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member</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>66
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893927265264">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements - Changes in fair value measurements (Details) - Level 3<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jul. 31, 2022 </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_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems', window );"><strong>Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]</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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at the beginning</a></td>
<td class="nump">$ 12,990<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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases', window );">Increase from acquisitions</a></td>
<td class="nump">23,373<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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements', window );">Cash payments</a></td>
<td class="num">(10,517)<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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings', window );">Charges through profit or loss</a></td>
<td class="nump">1,833<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_dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange', window );">Effect of movements in foreign exchange</a></td>
<td class="num">(100)<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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Balance at the end</a></td>
<td class="nump">$ 27,579<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 gain (loss) from effect of movements in foreign exchange from liability measured at fair value on recurring basis using unobservable input (level 3).</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;">dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems</td>
</tr>
<tr>
<td style="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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3).</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings</td>
</tr>
<tr>
<td style="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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 purchases of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases</td>
</tr>
<tr>
<td style="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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 settlements of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<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_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements</td>
</tr>
<tr>
<td style="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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123874694&amp;loc=d3e19207-110258<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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue</td>
</tr>
<tr>
<td style="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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member</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>67
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893928066272">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Trade Accounts Receivable - Trade Receivables (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_ReceivablesAbstract', window );"><strong>Trade Accounts Receivable</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_AccountsReceivableGrossCurrent', window );">Trade accounts receivable</a></td>
<td class="nump">$ 50,869<span></span>
</td>
<td class="nump">$ 43,565<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_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Less: Provision for credit losses</a></td>
<td class="num">(1,956)<span></span>
</td>
<td class="num">(1,860)<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_AccountsReceivableNetCurrent', window );">Accounts Receivable, after Allowance for Credit Loss, Current, Total</a></td>
<td class="nump">$ 48,913<span></span>
</td>
<td class="nump">$ 41,705<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4428-111522<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4531-111522<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_AccountsReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4428-111522<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4531-111522<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_AccountsReceivableNetCurrent</td>
</tr>
<tr>
<td style="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_AllowanceForDoubtfulAccountsReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allowance for credit loss on accounts receivable, 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5074-111524<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124255206&amp;loc=SL82895884-210446<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_AllowanceForDoubtfulAccountsReceivableCurrent</td>
</tr>
<tr>
<td style="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_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ReceivablesAbstract</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893938422720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Trade Accounts Receivable (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_ReceivablesAbstract', window );"><strong>Trade Accounts Receivable</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_UnbilledReceivablesCurrent', window );">Unbilled Receivables, Current</a></td>
<td class="nump">$ 0.9<span></span>
</td>
<td class="nump">$ 0.5<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_dsgx_PercentageOfAccountReceivable', window );">Percentage of account receivable</a></td>
<td class="nump">10.00%<span></span>
</td>
<td class="nump">10.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_PercentageOfAccountReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represent of percentage item</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;">dsgx_PercentageOfAccountReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ReceivablesAbstract</td>
</tr>
<tr>
<td style="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_UnbilledReceivablesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 received for services rendered and products shipped, but not yet billed, for non-contractual agreements 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_UnbilledReceivablesCurrent</td>
</tr>
<tr>
<td style="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>69
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893937269856">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Trade Accounts Receivable - Provision for Credit Losses (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jul. 31, 2022 </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_ReceivablesAbstract', window );"><strong>Trade Accounts Receivable</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_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Balance</a></td>
<td class="nump">$ 1,860<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_ProvisionForDoubtfulAccounts', window );">Current period provision for expected losses</a></td>
<td class="nump">232<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_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Write-offs charged against the provision</a></td>
<td class="num">(114)<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_dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange', window );">Effect of movements in foreign exchange</a></td>
<td class="num">(22)<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_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Balance</a></td>
<td class="nump">$ 1,956<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 effects of foreign exchange currency movement against the allowance.</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;">dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_AllowanceForDoubtfulAccountsReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allowance for credit loss on accounts receivable, 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5074-111524<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124255206&amp;loc=SL82895884-210446<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_AllowanceForDoubtfulAccountsReceivableCurrent</td>
</tr>
<tr>
<td style="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_AllowanceForDoubtfulAccountsReceivableWriteOffs">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 direct write-downs of accounts receivable charged against the allowance.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<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_AllowanceForDoubtfulAccountsReceivableWriteOffs</td>
</tr>
<tr>
<td style="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_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 (reversal of expense) for expected 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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<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_ProvisionForDoubtfulAccounts</td>
</tr>
<tr>
<td style="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_ReceivablesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ReceivablesAbstract</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932149024">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Other Receivables (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_dsgx_statement-statement-note-6-other-receivables-other-receivables-details', window );"><strong>Other Receivables</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_dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions', window );">Net working capital adjustments receivable from acquisitions</a></td>
<td class="nump">$ 74<span></span>
</td>
<td class="nump">$ 309<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 );">Other receivables</a></td>
<td class="nump">11,346<span></span>
</td>
<td class="nump">13,766<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_OtherReceivablesNetCurrent', window );">Other Receivables, Net, Current, Total</a></td>
<td class="nump">$ 11,420<span></span>
</td>
<td class="nump">$ 14,075<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Net working capital adjustments receivable from acquisitions.</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;">dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_statement-statement-note-6-other-receivables-other-receivables-details">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">dsgx_statement-statement-note-6-other-receivables-other-receivables-details</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.8)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<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_OtherReceivablesNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, of receivables classified as other, due within one year or the 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_OtherReceivablesNetCurrent</td>
</tr>
<tr>
<td style="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>71
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893936826992">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Other Receivables - Additional Information (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_dsgx_NoteToFinancialStatementDetailsTextual', window );"><strong>Note To Financial Statement Details Textual</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_dsgx_AmountsRecoverableFromFundsHeldInEscrow', window );">Amounts Recoverable from Funds Held in Escrow</a></td>
<td class="nump">$ 0.1<span></span>
</td>
<td class="nump">$ 0.3<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_AmountsRecoverableFromFundsHeldInEscrow">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 recoverable from funds held In escrow related to acquisitions.</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;">dsgx_AmountsRecoverableFromFundsHeldInEscrow</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_NoteToFinancialStatementDetailsTextual">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">dsgx_NoteToFinancialStatementDetailsTextual</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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>72
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893937556368">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Property and Equipment (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</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_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">$ 47,355<span></span>
</td>
<td class="nump">$ 45,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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Accumulated depreciation</a></td>
<td class="nump">35,955<span></span>
</td>
<td class="nump">34,654<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_PropertyPlantAndEquipmentNet', window );">Net</a></td>
<td class="nump">11,400<span></span>
</td>
<td class="nump">10,817<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_ComputerEquipmentMember', window );">Computer Equipment</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_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</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_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">42,553<span></span>
</td>
<td class="nump">40,937<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 );">Accumulated depreciation</a></td>
<td class="nump">32,620<span></span>
</td>
<td class="nump">31,660<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="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_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</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_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">1,629<span></span>
</td>
<td class="nump">1,553<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 );">Accumulated depreciation</a></td>
<td class="nump">1,321<span></span>
</td>
<td class="nump">1,257<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_LeaseholdImprovementsMember', window );">Leasehold Improvements</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_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</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_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">1,024<span></span>
</td>
<td class="nump">822<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 );">Accumulated depreciation</a></td>
<td class="nump">591<span></span>
</td>
<td class="nump">531<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=dsgx_EquipmentInstalledWithCustomersMember', window );">Equipment Installed With Customers</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_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</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_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">1,680<span></span>
</td>
<td class="nump">1,635<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 );">Accumulated depreciation</a></td>
<td class="nump">1,423<span></span>
</td>
<td class="nump">1,206<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_AssetUnderConstructionMember', window );">Asset under Construction</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_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</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_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">$ 469<span></span>
</td>
<td class="nump">$ 524<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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.14)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.13)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_PropertyPlantAndEquipmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_PropertyPlantAndEquipmentLineItems</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<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_ComputerEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ComputerEquipmentMember</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_LeaseholdImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LeaseholdImprovementsMember</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=dsgx_EquipmentInstalledWithCustomersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=dsgx_EquipmentInstalledWithCustomersMember</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_AssetUnderConstructionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AssetUnderConstructionMember</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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893927417376">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Intangible Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</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_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">$ 644,537<span></span>
</td>
<td class="nump">$ 599,157<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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">391,972<span></span>
</td>
<td class="nump">369,548<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_FiniteLivedIntangibleAssetsNet', window );">Intangible assets. net</a></td>
<td class="nump">252,565<span></span>
</td>
<td class="nump">229,609<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer agreements and relationships</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</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_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">266,481<span></span>
</td>
<td class="nump">251,402<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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">141,408<span></span>
</td>
<td class="nump">135,380<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">Existing technology</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</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_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">355,275<span></span>
</td>
<td class="nump">326,411<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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">234,197<span></span>
</td>
<td class="nump">218,953<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Trade names</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</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_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">8,990<span></span>
</td>
<td class="nump">9,038<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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">6,894<span></span>
</td>
<td class="nump">6,677<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete covenants</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</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_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">13,791<span></span>
</td>
<td class="nump">12,306<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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">$ 9,473<span></span>
</td>
<td class="nump">$ 8,538<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_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="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_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 928<br> -SubTopic 340<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6473545&amp;loc=d3e61844-108004<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="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_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="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_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120154696&amp;loc=d3e54445-107959<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember</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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember</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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</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>74
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893937477840">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Intangible Assets - Additional information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_IntangibleAssetsNetExcludingGoodwillAbstract', window );"><strong>Intangible 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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Finite-Lived Intangible Assets, Net, Ending Balance</a></td>
<td class="nump">$ 252,565<span></span>
</td>
<td class="nump">$ 229,609<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_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear', window );">Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year</a></td>
<td class="nump">29,500<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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">Finite-Lived Intangible Asset, Expected Amortization, Year One</a></td>
<td class="nump">48,900<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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">Finite-Lived Intangible Asset, Expected Amortization, Year Two</a></td>
<td class="nump">45,800<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_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">Finite-Lived Intangible Asset, Expected Amortization, Year Three</a></td>
<td class="nump">41,500<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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">Finite-Lived Intangible Asset, Expected Amortization, Year Four</a></td>
<td class="nump">26,900<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_dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour', window );">Finite-Lived Intangible Asset, Expected Amortization, after Year Four</a></td>
<td class="nump">$ 60,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_dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</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;">dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</td>
</tr>
<tr>
<td style="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_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year.</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_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</td>
</tr>
<tr>
<td style="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_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</td>
</tr>
<tr>
<td style="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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</td>
</tr>
<tr>
<td style="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_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120154696&amp;loc=d3e54445-107959<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<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_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="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_IntangibleAssetsNetExcludingGoodwillAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IntangibleAssetsNetExcludingGoodwillAbstract</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893927343936">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_GoodwillLineItems', window );"><strong>Goodwill [Line Items]</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_Goodwill', window );">Balance</a></td>
<td class="nump">$ 608,761<span></span>
</td>
<td class="nump">$ 565,177<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_GoodwillTranslationAndPurchaseAccountingAdjustments', window );">Adjustments on account of foreign exchange</a></td>
<td class="num">(8,812)<span></span>
</td>
<td class="num">(6,107)<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_Goodwill', window );">Balance</a></td>
<td class="nump">671,802<span></span>
</td>
<td class="nump">608,761<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_BusinessAcquisitionAxis=dsgx_QuestawebMember', window );">QuestaWeb</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_GoodwillLineItems', window );"><strong>Goodwill [Line Items]</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_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">21,691<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_BusinessAcquisitionAxis=dsgx_PortrixMember', window );">Portrix</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_GoodwillLineItems', window );"><strong>Goodwill [Line Items]</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_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15,032<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_BusinessAcquisitionAxis=dsgx_GreenmileMember', window );">GreenMile</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_GoodwillLineItems', window );"><strong>Goodwill [Line Items]</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_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 12,968<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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember', window );">Net CHB, LLC</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_GoodwillLineItems', window );"><strong>Goodwill [Line Items]</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_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="nump">26,797<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_BusinessAcquisitionAxis=dsgx_FoxtrotMember', window );">Foxtrot</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_GoodwillLineItems', window );"><strong>Goodwill [Line Items]</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_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="nump">1,527<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_BusinessAcquisitionAxis=dsgx_XpsMember', window );">XPS</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_GoodwillLineItems', window );"><strong>Goodwill [Line Items]</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_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="nump">$ 43,529<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_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120320667&amp;loc=SL49117168-202975<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<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_Goodwill</td>
</tr>
<tr>
<td style="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_GoodwillAcquiredDuringPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<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_GoodwillAcquiredDuringPeriod</td>
</tr>
<tr>
<td style="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_GoodwillLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_GoodwillLineItems</td>
</tr>
<tr>
<td style="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_GoodwillTranslationAndPurchaseAccountingAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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) from foreign currency translation adjustments and purchase accounting adjustments of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 25<br> -Paragraph 16<br> -URI http://asc.fasb.org/extlink&amp;oid=123586518&amp;loc=d3e961-128460<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<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_GoodwillTranslationAndPurchaseAccountingAdjustments</td>
</tr>
<tr>
<td style="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_BusinessAcquisitionAxis=dsgx_QuestawebMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_QuestawebMember</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_BusinessAcquisitionAxis=dsgx_PortrixMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_PortrixMember</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_BusinessAcquisitionAxis=dsgx_GreenmileMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_GreenmileMember</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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_NetChbLlcMember</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_BusinessAcquisitionAxis=dsgx_FoxtrotMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_FoxtrotMember</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_BusinessAcquisitionAxis=dsgx_XpsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_XpsMember</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>76
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893933686144">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Accrued Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_AccruedLiabilitiesCurrentAbstract', window );"><strong>Accrued Liabilities</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_EmployeeRelatedLiabilitiesCurrent', window );">Accrued compensation and benefits</a></td>
<td class="nump">$ 29,710<span></span>
</td>
<td class="nump">$ 32,169<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_AccruedProfessionalFeesCurrent', window );">Accrued professional fees</a></td>
<td class="nump">1,445<span></span>
</td>
<td class="nump">1,318<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_OtherAccruedLiabilitiesCurrent', window );">Other accrued liabilities</a></td>
<td class="nump">40,261<span></span>
</td>
<td class="nump">22,955<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_AccruedLiabilitiesCurrent', window );">Accrued Liabilities, Current, Total</a></td>
<td class="nump">$ 71,416<span></span>
</td>
<td class="nump">$ 56,442<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_AccruedLiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AccruedLiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="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_AccruedProfessionalFeesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 through that date and payable for professional fees, such as for legal and accounting services received. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6911-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6935-107765<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_AccruedProfessionalFeesCurrent</td>
</tr>
<tr>
<td style="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_EmployeeRelatedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_EmployeeRelatedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="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_OtherAccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 expenses incurred but not yet paid 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>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6911-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e7018-107765<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6935-107765<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_OtherAccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="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>77
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893926153168">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Long-term Debt (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_LettersOfCreditOutstandingAmount', window );">Letters of Credit Outstanding, Amount</a></td>
<td class="nump">$ 0.2<span></span>
</td>
<td class="nump">$ 0.2<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_CreditFacilityAxis=dsgx_RevolvingOperatingCreditFacilityMember', window );">Revolving Operating Credit Facility [Member] | Senior Secured Credit Facility [Member]</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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_LineOfCreditFacilityRemainingBorrowingCapacity', window );">Available for use</a></td>
<td class="nump">350.0<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, Total</a></td>
<td class="nump">0.0<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_CreditFacilityAxis=dsgx_RevolvingOperatingCreditFacilityMember', window );">Revolving Operating Credit Facility [Member] | Senior Secured Credit Facility [Member] | Maximum</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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Line of Credit Facility, Maximum Borrowing Capacity</a></td>
<td class="nump">500.0<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_CreditFacilityAxis=dsgx_RevolvingOperatingCreditFacilityMember', window );">Revolving Operating Credit Facility [Member] | Senior Secured Credit Facility [Member] | Minimum</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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Line of Credit Facility, Maximum Borrowing Capacity</a></td>
<td class="nump">$ 350.0<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_CreditFacilityAxis=dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember', window );">Line of Credit Borrowings to Support Foreign Exchange and Interest Rate Hedging [Member] | Senior Secured Credit Facility [Member]</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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_DebtInstrumentTerm', window );">Debt Instrument, Term (Year)</a></td>
<td class="text">5 years<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_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember', window );">Senior Secured Credit Facility [Member] | Maximum</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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Line of Credit Facility, Unused Capacity, Commitment Fee Percentage</a></td>
<td class="nump">0.40%<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_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember', window );">Senior Secured Credit Facility [Member] | Maximum | Canada or US Prime Rate, BA, or LIBOR [Member]</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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt Instrument, Basis Spread on Variable Rate</a></td>
<td class="nump">2.50%<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_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember', window );">Senior Secured Credit Facility [Member] | Minimum</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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Line of Credit Facility, Unused Capacity, Commitment Fee Percentage</a></td>
<td class="nump">0.20%<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_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember', window );">Senior Secured Credit Facility [Member] | Minimum | Canada or US Prime Rate, BA, or LIBOR [Member]</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_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt Instrument, Basis Spread on Variable Rate</a></td>
<td class="nump">0.00%<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_DebtInstrumentBasisSpreadOnVariableRate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 points added to the reference rate to compute the variable rate on the debt 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;">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</td>
</tr>
<tr>
<td style="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_DebtInstrumentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_DebtInstrumentLineItems</td>
</tr>
<tr>
<td style="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_DebtInstrumentTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period of time between issuance and maturity of debt instrument, 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>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_DebtInstrumentTerm</td>
</tr>
<tr>
<td style="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_LettersOfCreditOutstandingAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 total amount of the contingent obligation under letters of credit outstanding as of 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_LettersOfCreditOutstandingAmount</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<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_LineOfCreditFacilityMaximumBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(b),22(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_LineOfCreditFacilityMaximumBorrowingCapacity</td>
</tr>
<tr>
<td style="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_LineOfCreditFacilityRemainingBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(b),22(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_LineOfCreditFacilityRemainingBorrowingCapacity</td>
</tr>
<tr>
<td style="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_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility.</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_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage</td>
</tr>
<tr>
<td style="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_CreditFacilityAxis=dsgx_RevolvingOperatingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CreditFacilityAxis=dsgx_RevolvingOperatingCreditFacilityMember</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_DebtInstrumentAxis=dsgx_SeniorSecuredCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DebtInstrumentAxis=dsgx_SeniorSecuredCreditFacilityMember</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_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RangeAxis=srt_MaximumMember</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_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RangeAxis=srt_MinimumMember</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_CreditFacilityAxis=dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CreditFacilityAxis=dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember</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_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CreditFacilityAxis=dsgx_SeniorSecuredCreditFacilityMember</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_VariableRateAxis=dsgx_CanadaOrUsPrimeRateBaOrLiborMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_VariableRateAxis=dsgx_CanadaOrUsPrimeRateBaOrLiborMember</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>78
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935355104">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Leases (Details)<br></strong></div></th>
<th class="th"><div>Jul. 31, 2022</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_LesseeLeaseDescriptionLineItems', window );"><strong>Lessee, Lease, Description [Line Items]</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_LesseeOperatingLeaseRemainingLeaseTerm', window );">Lessee, Operating Lease, Remaining Lease Term (Year)</a></td>
<td class="text">7 years<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_LesseeOperatingLeaseRenewalTerm', window );">Lessee, Operating Lease, Renewal Term (Year)</a></td>
<td class="text">5 years<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_LesseeLeaseDescriptionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_LesseeLeaseDescriptionLineItems</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseRemainingLeaseTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Remaining lease term of operating lease, 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918673-209980<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_LesseeOperatingLeaseRemainingLeaseTerm</td>
</tr>
<tr>
<td style="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>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_LesseeOperatingLeaseRenewalTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Term of lessee's operating lease renewal, 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918673-209980<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_LesseeOperatingLeaseRenewalTerm</td>
</tr>
<tr>
<td style="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>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>79
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893926154016">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases - Components of Operating Lease Expense (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2022</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_LeasesAbstract', window );"><strong>Leases</strong></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="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_OperatingLeaseCost', window );">Operating lease cost</a></td>
<td class="nump">$ 1,078<span></span>
</td>
<td class="nump">$ 1,122<span></span>
</td>
<td class="nump">$ 2,143<span></span>
</td>
<td class="nump">$ 2,215<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_ShortTermLeaseCost', window );">Short-term lease cost</a></td>
<td class="nump">150<span></span>
</td>
<td class="nump">53<span></span>
</td>
<td class="nump">299<span></span>
</td>
<td class="nump">170<span></span>
</td>
<td class="text">&#160;<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_LeaseCost', window );">Total operating lease cost</a></td>
<td class="nump">1,228<span></span>
</td>
<td class="nump">1,175<span></span>
</td>
<td class="nump">2,442<span></span>
</td>
<td class="nump">2,385<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_OperatingLeasePayments', window );">Operating cash outflows from operating leases included in measurement of lease liabilities</a></td>
<td class="nump">1,148<span></span>
</td>
<td class="nump">1,358<span></span>
</td>
<td class="nump">2,264<span></span>
</td>
<td class="nump">2,560<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_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability', window );">New ROU assets obtained in exchange for lease obligations</a></td>
<td class="nump">$ 122<span></span>
</td>
<td class="nump">$ 833<span></span>
</td>
<td class="nump">$ 346<span></span>
</td>
<td class="nump">$ 1,161<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_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Weighted average remaining lease term (years)</a></td>
<td class="text">2 years 10 months 24 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 years 10 months 24 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 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_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Weighted average discount rate (%)</a></td>
<td class="nump">2.20%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.20%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.10%<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_LeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lease cost recognized by lessee for lease contract.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<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_LeaseCost</td>
</tr>
<tr>
<td style="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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LeasesAbstract</td>
</tr>
<tr>
<td style="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_OperatingLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<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_OperatingLeaseCost</td>
</tr>
<tr>
<td style="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_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918643-209977<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<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_OperatingLeasePayments</td>
</tr>
<tr>
<td style="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_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 discount rate for operating lease calculated at point in time.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<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_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="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>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_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lease term for operating lease, 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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<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_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="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>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_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 in right-of-use asset obtained in exchange for operating lease liability.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<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_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability</td>
</tr>
<tr>
<td style="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_ShortTermLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 short-term lease cost, excluding expense for lease with term of one month or less.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<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_ShortTermLeaseCost</td>
</tr>
<tr>
<td style="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>80
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893929295840">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Leases - Maturities of Operating Lease Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_LeasesAbstract', window );"><strong>Leases</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_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear', window );">Remainder of 2023</a></td>
<td class="nump">$ 2,003<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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2024</a></td>
<td class="nump">3,349<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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2025</a></td>
<td class="nump">2,299<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_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2026</a></td>
<td class="nump">929<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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2027</a></td>
<td class="nump">308<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_dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour', window );">2028 and thereafter</a></td>
<td class="nump">178<span></span>
</td>
<td class="text">&#160;<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_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total lease payments</a></td>
<td class="nump">9,066<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_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less: imputed interest</a></td>
<td class="nump">368<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_OperatingLeaseLiability', window );">Total lease obligations</a></td>
<td class="nump">8,698<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_OperatingLeaseLiabilityCurrent', window );">Current</a></td>
<td class="nump">3,604<span></span>
</td>
<td class="nump">$ 4,029<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_OperatingLeaseLiabilityNoncurrent', window );">Long-term</a></td>
<td class="nump">$ 5,094<span></span>
</td>
<td class="nump">$ 7,382<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position 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;">dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LeasesAbstract</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee's undiscounted obligation for lease payment for operating lease.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<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_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<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_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="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_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<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_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="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_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="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_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="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_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<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_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="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_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 purchase arrangement to be paid in remainder of current fiscal year. Includes, but is not limited to, recorded and unrecorded purchase obligations, long-term purchase commitment, and short-term purchase commitment.</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_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="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>81
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893926308304">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments, Contingencies and Guarantees (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_LossContingenciesLineItems', window );"><strong>Loss Contingencies [Line Items]</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_dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized', window );">Deferred Share Units Nonvested Total Compensation Cost Not Yet Recognized</a></td>
<td class="nump">$ 900<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_dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized', window );">Cash Settled Restricted Share Units Nonvested Total Compensation Cost Not Yet Recognized</a></td>
<td class="nump">$ 1,100<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_dsgx_DerivativeInstrumentSharesOfCommonStockHeld', window );">Derivative Instrument, Shares of Common Stock Held (in shares)</a></td>
<td class="nump">281,768<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_dsgx_DeferredShareUnitLiabilityNumberOfCommonShares', window );">Deferred Share Unit Liability, Number of Common Shares (in shares)</a></td>
<td class="nump">281,768<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_BusinessCombinationContingentConsiderationLiability', window );">Fair value of the contingent considerations</a></td>
<td class="nump">$ 27,579<span></span>
</td>
<td class="nump">$ 12,990<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_BusinessAcquisitionAxis=dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember', window );">CORE, Kontainers, ShipTrack, GreenMile, NetCHB And XPS [Member]</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_LossContingenciesLineItems', window );"><strong>Loss Contingencies [Line Items]</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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</a></td>
<td class="nump">$ 157,800<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_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets', window );">Business Combination, Contingent Consideration Arrangements, Period for Revenue Performance Targets (Year)</a></td>
<td class="text">2 years<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_BusinessCombinationContingentConsiderationLiability', window );">Fair value of the contingent considerations</a></td>
<td class="nump">$ 27,600<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_dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 period (following acquisition) over which contingent consideration is to be paid by the reporting entity if the acquired entity meets certain performance targets.</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;">dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 settled restricted share units nonvested, total compensation cost not yet recognized.</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;">dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_DeferredShareUnitLiabilityNumberOfCommonShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 common shares for which there is a deferred share unit liability.</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;">dsgx_DeferredShareUnitLiabilityNumberOfCommonShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred share units nonvested, total compensation cost not yet recognized.</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;">dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_DerivativeInstrumentSharesOfCommonStockHeld">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 held by certain derivative instruments entered into by the company.</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;">dsgx_DerivativeInstrumentSharesOfCommonStockHeld</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 contingent consideration arrangements recognized in connection with a business combination, this element represents an estimate of the high-end of the potential range (undiscounted) of the consideration which may be 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh</td>
</tr>
<tr>
<td style="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_BusinessCombinationContingentConsiderationLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 liability recognized arising from contingent consideration in a business combination.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116859824&amp;loc=d3e6819-128478<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6408-128476<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_BusinessCombinationContingentConsiderationLiability</td>
</tr>
<tr>
<td style="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_LossContingenciesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_LossContingenciesLineItems</td>
</tr>
<tr>
<td style="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_BusinessAcquisitionAxis=dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BusinessAcquisitionAxis=dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember</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>82
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893927516432">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Share Capital (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 15, 2022</div></th>
<th class="th"><div>Jun. 07, 2022</div></th>
<th class="th"><div>Jul. 16, 2020</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></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="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_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from Stock Options Exercised</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="nump">$ 0.1<span></span>
</td>
<td class="nump">$ 0.9<span></span>
</td>
<td class="nump">$ 0.5<span></span>
</td>
<td class="nump">$ 1.5<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_SubsidiarySaleOfStockAxis=dsgx_ShelfProspectusMember', window );">The 2022 Base Shelf Prospectus</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="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_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></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="text">&#160;<span></span>
</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_dsgx_ShelfProspectusPeriod', window );">Shelf Prospectus Period (Month)</a></td>
<td class="text">25 months<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="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_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Stock issued during period, shares, new issues (in shares)</a></td>
<td class="nump">0<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="text">&#160;<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_SubsidiarySaleOfStockAxis=dsgx_The2020BaseShelfProspectusMember', window );">The 2020 Base Shelf Prospectus</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="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_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></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="text">&#160;<span></span>
</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_dsgx_ShelfProspectusPeriod', window );">Shelf Prospectus Period (Month)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">25 months<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="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_dsgx_ShelfProspectusMaximumAmount', window );">Shelf Prospectus, Maximum Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000.0<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="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_StockIssuedDuringPeriodSharesNewIssues', window );">Stock issued during period, shares, new issues (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<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="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_SubsidiarySaleOfStockAxis=dsgx_NcibMember', window );">NCIB</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="text">&#160;<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_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></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="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_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Stock issued during period, shares, new issues (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<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="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_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased', window );">Number of shares to be purchased for cancellation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,400,000<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="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_dsgx_MaximumPercentageOfSharesToBeRepurchased', window );">Maximum percentage of shares to be repurchased for cancellation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10.00%<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="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_dsgx_MaximumPercentageOfSharesToBeRepurchased">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 maximum percentage of shares of the public float to be repurchased.</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;">dsgx_MaximumPercentageOfSharesToBeRepurchased</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShelfProspectusMaximumAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount related to the shelf prospectus.</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;">dsgx_ShelfProspectusMaximumAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShelfProspectusPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 duration of the shelf prospectus.</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;">dsgx_ShelfProspectusPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_ClassOfStockLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_ClassOfStockLineItems</td>
</tr>
<tr>
<td style="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_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 from exercise of 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=SL79508275-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3255-108585<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_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 new stock issued 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_StockIssuedDuringPeriodSharesNewIssues</td>
</tr>
<tr>
<td style="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_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 authorized to be repurchased by an entity's Board of Directors under a stock repurchase plan.</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_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased</td>
</tr>
<tr>
<td style="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_SubsidiarySaleOfStockAxis=dsgx_ShelfProspectusMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SubsidiarySaleOfStockAxis=dsgx_ShelfProspectusMember</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_SubsidiarySaleOfStockAxis=dsgx_The2020BaseShelfProspectusMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SubsidiarySaleOfStockAxis=dsgx_The2020BaseShelfProspectusMember</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_SubsidiarySaleOfStockAxis=dsgx_NcibMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SubsidiarySaleOfStockAxis=dsgx_NcibMember</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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893927346544">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per Share (Details) - shares<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember', window );">Share-based Payment Arrangement, Option [Member]</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>
</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_EarningsPerShareBasicLineItems', window );"><strong>Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]</strong></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>
</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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)</a></td>
<td class="nump">501,494<span></span>
</td>
<td class="nump">248,505<span></span>
</td>
<td class="nump">6,960<span></span>
</td>
<td class="nump">248,505<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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=dsgx_StockOptionsTreasuryStockMethodMember', window );">Stock Options, Treasury Stock Method [Member]</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>
</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_EarningsPerShareBasicLineItems', window );"><strong>Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]</strong></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>
</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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)</a></td>
<td class="nump">135,776<span></span>
</td>
<td class="nump">91,081<span></span>
</td>
<td class="nump">630,310<span></span>
</td>
<td class="nump">91,081<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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=dsgx_PSUsAndRSUsMember', window );">PSUs and RSUs [Member]</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>
</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_EarningsPerShareBasicLineItems', window );"><strong>Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]</strong></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>
</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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)</a></td>
<td class="nump">97,991<span></span>
</td>
<td class="nump">77,441<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">77,441<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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="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_EarningsPerShareBasicLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_EarningsPerShareBasicLineItems</td>
</tr>
<tr>
<td style="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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember</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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=dsgx_StockOptionsTreasuryStockMethodMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=dsgx_StockOptionsTreasuryStockMethodMember</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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=dsgx_PSUsAndRSUsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=dsgx_PSUsAndRSUsMember</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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893927314992">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details) - USD ($)<br> $ / shares in Units, shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_EarningsPerShareBasicLineItems', window );"><strong>Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]</strong></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>
</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 for purposes of calculating basic and diluted earnings per share</a></td>
<td class="nump">$ 22,902<span></span>
</td>
<td class="nump">$ 23,176<span></span>
</td>
<td class="nump">$ 46,017<span></span>
</td>
<td class="nump">$ 41,597<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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted average shares outstanding (in shares)</a></td>
<td class="nump">84,783<span></span>
</td>
<td class="nump">84,566<span></span>
</td>
<td class="nump">84,774<span></span>
</td>
<td class="nump">84,534<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_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Weighted average common and common equivalent shares outstanding (in shares)</a></td>
<td class="nump">86,338<span></span>
</td>
<td class="nump">86,128<span></span>
</td>
<td class="nump">86,344<span></span>
</td>
<td class="nump">86,066<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 );">Earning Per Share (Basic)</a></td>
<td class="nump">$ 0.27<span></span>
</td>
<td class="nump">$ 0.27<span></span>
</td>
<td class="nump">$ 0.54<span></span>
</td>
<td class="nump">$ 0.49<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 );">Earning Per Share (Diluted)</a></td>
<td class="nump">$ 0.27<span></span>
</td>
<td class="nump">$ 0.27<span></span>
</td>
<td class="nump">$ 0.53<span></span>
</td>
<td class="nump">$ 0.48<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_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Share-based Payment Arrangement, Option [Member]</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>
</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_EarningsPerShareBasicLineItems', window );"><strong>Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]</strong></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>
</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_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Dilutive effect of employee stock options (in shares)</a></td>
<td class="nump">401<span></span>
</td>
<td class="nump">421<span></span>
</td>
<td class="nump">433<span></span>
</td>
<td class="nump">417<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_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</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>
</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_EarningsPerShareBasicLineItems', window );"><strong>Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]</strong></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>
</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_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Dilutive effect of employee stock options (in shares)</a></td>
<td class="nump">1,154<span></span>
</td>
<td class="nump">1,141<span></span>
</td>
<td class="nump">1,137<span></span>
</td>
<td class="nump">1,115<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1448-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1337-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=125512782&amp;loc=d3e4984-109258<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=125512782&amp;loc=d3e3842-109258<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1252-109256<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=SL5780133-109256<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<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_EarningsPerShareBasicLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_EarningsPerShareBasicLineItems</td>
</tr>
<tr>
<td style="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_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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=125512782&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=125512782&amp;loc=d3e3842-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1252-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1337-109256<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<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_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1707-109256<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28A<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1500-109256<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 23<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1757-109256<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_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements</td>
</tr>
<tr>
<td style="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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123482062&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124509347&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<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_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1505-109256<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_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="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_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1448-109256<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_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="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_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</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_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</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>85
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893928330800">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Additional information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2022</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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="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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost', window );">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost</a></td>
<td class="nump">$ 700,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 700,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 700,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares)</a></td>
<td class="nump">1,627,978<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,627,978<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,319,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">354,699<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value</a></td>
<td class="nump">$ 200,000<span></span>
</td>
<td class="nump">$ 1,400,000<span></span>
</td>
<td class="nump">$ 1,300,000<span></span>
</td>
<td class="nump">$ 2,000,000.0<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_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Share-based Payment Arrangement, Option [Member]</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="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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="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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total</a></td>
<td class="nump">10,500,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,500,000<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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 years 10 months 24 days<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 100,000<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_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">Performance Shares [Member]</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="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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="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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total</a></td>
<td class="nump">10,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,200,000<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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">1 year 7 months 6 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue', window );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,200,000<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_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</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="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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="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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total</a></td>
<td class="nump">5,600,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,600,000<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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">1 year 10 months 24 days<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<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_PlanNameAxis=dsgx_ShareholderApprovedStockOptionsPlanMember', window );">Shareholder-Approved Stock Options Plan [Member]</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="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant (in shares)</a></td>
<td class="nump">2,700,683<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,700,683<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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total</a></td>
<td class="nump">$ 1,627,978<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,627,978<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares)</a></td>
<td class="nump">92,422<span></span>
</td>
<td class="nump">1,000<span></span>
</td>
<td class="nump">354,699<span></span>
</td>
<td class="nump">269,025<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 18.91<span></span>
</td>
<td class="nump">$ 16.85<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_PlanNameAxis=dsgx_DeferredShareUnitPlanMember', window );">Deferred Share Unit Plan [Member]</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="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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="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_dsgx_DeferredShareUnitsOutstandingNumber', window );">Deferred Share Units Outstanding Number (in shares)</a></td>
<td class="nump">281,768<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">281,768<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">252,011<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_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent', window );">Deferred Compensation Share-based Arrangements, Liability, Current and Noncurrent</a></td>
<td class="nump">$ 18,500,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 18,500,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 18,300,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_dsgx_DeferredShareUnitsGrantsInPeriod', window );">Deferred Share Units Grants In Period (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">29,757<span></span>
</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_dsgx_DeferredShareUnitsCompensationExpense', window );">Deferred Share Units Compensation Expense</a></td>
<td class="nump">2,700,000<span></span>
</td>
<td class="nump">$ 3,000,000.0<span></span>
</td>
<td class="nump">$ 300,000<span></span>
</td>
<td class="nump">$ 3,200,000<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_PlanNameAxis=dsgx_CashSettledRestrictedShareUnitMember', window );">Cash-Settled Restricted Share Unit [Member]</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="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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="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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total</a></td>
<td class="nump">1,100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,000,000.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_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent', window );">Deferred Compensation Share-based Arrangements, Liability, Current and Noncurrent</a></td>
<td class="nump">600,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">600,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 800,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_dsgx_CashSettledRestrictedShareUnitsCompensationExpense', window );">Cash Settled Restricted Share Units Compensation Expense</a></td>
<td class="nump">$ 200,000<span></span>
</td>
<td class="nump">$ 300,000<span></span>
</td>
<td class="nump">$ 400,000<span></span>
</td>
<td class="nump">$ 600,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_dsgx_CashSettledRestrictedShareUnitsCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 settled restricted share units compensation expense.</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;">dsgx_CashSettledRestrictedShareUnitsCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_DeferredShareUnitsCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred share units compensation expense.</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;">dsgx_DeferredShareUnitsCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_DeferredShareUnitsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred share units granted in 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;">dsgx_DeferredShareUnitsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_DeferredShareUnitsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 outstanding deferred share units as of the reported 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;">dsgx_DeferredShareUnitsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 carrying value as of the balance sheet date of the liabilities for stock option plans and other equity-based compensation arrangements.</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_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 from share-based compensation.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost</td>
</tr>
<tr>
<td style="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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 not yet recognized for nonvested award 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 period over which cost not yet recognized is expected to be recognized for 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="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_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>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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1</td>
</tr>
<tr>
<td style="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_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</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_AwardTypeAxis=us-gaap_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardTypeAxis=us-gaap_PerformanceSharesMember</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_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</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_PlanNameAxis=dsgx_ShareholderApprovedStockOptionsPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PlanNameAxis=dsgx_ShareholderApprovedStockOptionsPlanMember</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_PlanNameAxis=dsgx_DeferredShareUnitPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PlanNameAxis=dsgx_DeferredShareUnitPlanMember</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_PlanNameAxis=dsgx_CashSettledRestrictedShareUnitMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PlanNameAxis=dsgx_CashSettledRestrictedShareUnitMember</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>86
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893938382544">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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>
</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_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">$ 3,736<span></span>
</td>
<td class="nump">$ 3,015<span></span>
</td>
<td class="nump">$ 6,523<span></span>
</td>
<td class="nump">$ 5,167<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_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember', window );">Cost of Sales [Member]</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>
</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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>
</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_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">254<span></span>
</td>
<td class="nump">199<span></span>
</td>
<td class="nump">449<span></span>
</td>
<td class="nump">343<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_IncomeStatementLocationAxis=us-gaap_SellingAndMarketingExpenseMember', window );">Selling and Marketing Expense [Member]</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>
</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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>
</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_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">675<span></span>
</td>
<td class="nump">918<span></span>
</td>
<td class="nump">1,160<span></span>
</td>
<td class="nump">1,279<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_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember', window );">Research and Development Expense [Member]</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>
</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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>
</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_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">490<span></span>
</td>
<td class="nump">388<span></span>
</td>
<td class="nump">857<span></span>
</td>
<td class="nump">668<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_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember', window );">General and Administrative Expense [Member]</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>
</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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>
</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_AllocatedShareBasedCompensationExpense', window );">Effect on net income</a></td>
<td class="nump">$ 2,317<span></span>
</td>
<td class="nump">$ 1,510<span></span>
</td>
<td class="nump">$ 4,057<span></span>
</td>
<td class="nump">$ 2,877<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_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 award under share-based payment arrangement. Excludes amount capitalized.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5047-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=122041274&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="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_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember</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_IncomeStatementLocationAxis=us-gaap_SellingAndMarketingExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeStatementLocationAxis=us-gaap_SellingAndMarketingExpenseMember</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_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember</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_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember</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>87
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893932771072">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)<br></strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock-Based Compensation Plans</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility (%)</a></td>
<td class="nump">29.20%<span></span>
</td>
<td class="nump">27.80%<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free rate (%)</a></td>
<td class="nump">2.40%<span></span>
</td>
<td class="nump">0.70%<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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected option life (years) (Year)</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">5 years<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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=122041274&amp;loc=d3e301413-122809<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>88
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893927312992">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Summary of Option Activity (Details)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jul. 31, 2022 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Jan. 31, 2022 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock-Based Compensation Plans</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Weighted-Average Remaining Contractual Life (Year)</a></td>
<td class="text">4 years 7 months 6 days<span></span>
</td>
<td class="text">4 years 4 months 24 days<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 );">Granted, shares (in shares) | shares</a></td>
<td class="nump">354,699<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted, weighted-average exercise price (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 62.57<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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised, shares (in shares) | shares</a></td>
<td class="num">(32,337)<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised, weighted-average exercise price (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 26.51<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod', window );">Forfeited, shares (in shares) | shares</a></td>
<td class="num">(13,663)<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice', window );">Forfeited, weighted-average exercise price (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 53.06<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of Stock Options Outstanding (in shares) | shares</a></td>
<td class="nump">1,627,978<span></span>
</td>
<td class="nump">1,319,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted-Average Exercise Price (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 46.34<span></span>
</td>
<td class="nump">$ 42.35<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 );">Aggregate Intrinsic Value | $</a></td>
<td class="nump">$ 41.5<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Aggregate Intrinsic Value | $</a></td>
<td class="nump">$ 37.4<span></span>
</td>
<td class="nump">$ 41.5<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested or expected to vest, shares (in shares) | shares</a></td>
<td class="nump">1,627,978<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Vested or expected to vest, weighted-average exercise price (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 46.34<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Vested or expected to vest, weighted-average remaining contractual life (Year)</a></td>
<td class="text">4 years 7 months 6 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value | $</a></td>
<td class="nump">$ 37.4<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable, shares (in shares) | shares</a></td>
<td class="nump">827,223<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Exercisable, weighted-average exercise price (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 36.69<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Exercisable, weighted-average remaining contractual life (Year)</a></td>
<td class="text">3 years 6 months<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Exercisable, aggregate intrinsic value | $</a></td>
<td class="nump">$ 26.9<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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod</td>
</tr>
<tr>
<td style="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>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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fully vested and expected to vest options outstanding that can be converted into shares under option plan. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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>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_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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 that were terminated.</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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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>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_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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for vested portions of options outstanding and currently exercisable or convertible, 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for option awards outstanding, 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21463-112644<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>89
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893929255712">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details) - USD ($)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 30, 2022</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 37.4<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Vested or expected to vest, weighted-average remaining contractual life (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">4 years 7 months 6 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Vested or expected to vest, weighted-average exercise price (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 46.34<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested or expected to vest, shares (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,627,978<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_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">Performance Shares [Member]</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms', window );">Weighted-Average Remaining Contractual, PSU (Year)</a></td>
<td class="text">4 years 9 months 18 days<span></span>
</td>
<td class="text">5 years<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of PSUs Granted (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">97,991<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">PSUs Granted, Weighted-Average Granted Date Fair Value (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 66.58<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod', window );">Performance units issued (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">39,704<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares', window );">Vested (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">915,233<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue', window );">Performance units issued, weighted-average granted date fair value (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 55.68<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue', window );">Vested, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 39.36<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Number of Units Outstanding (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">915,233<span></span>
</td>
<td class="nump">777,538<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted-Average Grant Date Fair Value, PSU (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 39.36<span></span>
</td>
<td class="nump">$ 35.76<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable', window );">Exercisable, Aggregate Intrinsic Value, PSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 45.3<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm', window );">Exercisable, Weighted-Average Remaining Contractual, PSU (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years 7 months 6 days<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue', window );">Exercisable, PSU weighted-average granted date fair value (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 27.43<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable', window );">Exercisable, number of units (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">654,467<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 63.4<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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding', window );">Aggregate Intrinsic Value, PSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">57.4<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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding', window );">Aggregate Intrinsic Value, PSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 63.4<span></span>
</td>
<td class="nump">$ 57.4<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of equity-based compensation awards exercisable. Excludes stock and unit options.</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;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 units exercisable other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</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;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fair value of exercisable awards on equity-based plans excluding option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, revenue or profit achievement stock award plan) for which the employer is contingently obligated to issue equity instruments or transfer assets to an employee who has not yet satisfied service or performance criteria necessary to gain title to proceeds from the sale of the award or underlying shares or units.</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;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for vested portions of equity instruments other than options outstanding and currently exercisable or convertible, 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>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;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 weighted average grant date fair value of units issued 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;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for equity-based awards excluding 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 equity instruments other than options outstanding, including both vested and non-vested instruments.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fully vested and expected to vest options outstanding that can be converted into shares under option plan. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 issued 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of outstanding award under share-based payment arrangement. Excludes share and unit options.</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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 vested.</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 grant-date fair value of options vested.</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_AwardTypeAxis=us-gaap_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardTypeAxis=us-gaap_PerformanceSharesMember</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>90
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893926484400">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Summary of Nonvested Share (Details) - $ / shares<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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>
</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">354,699<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_PlanNameAxis=dsgx_ShareholderApprovedStockOptionsPlanMember', window );">Shareholder-Approved Stock Options Plan [Member]</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>
</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></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>
</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 (in shares)</a></td>
<td class="nump">92,422<span></span>
</td>
<td class="nump">1,000<span></span>
</td>
<td class="nump">354,699<span></span>
</td>
<td class="nump">269,025<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 18.91<span></span>
</td>
<td class="nump">$ 16.85<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="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_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>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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_PlanNameAxis=dsgx_ShareholderApprovedStockOptionsPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_PlanNameAxis=dsgx_ShareholderApprovedStockOptionsPlanMember</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>91
<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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893927522512">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details) - USD ($)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Vested or expected to vest, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 46.34<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Vested or expected to vest, weighted-average remaining contractual life (Year)</a></td>
<td class="text">4 years 7 months 6 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 37.4<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_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms', window );">Weighted-Average Remaining Contractual, PSU (Year)</a></td>
<td class="text">5 years 1 month 6 days<span></span>
</td>
<td class="text">5 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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding', window );">Aggregate Intrinsic Value, PSU</a></td>
<td class="nump">$ 30.3<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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding', window );">Aggregate Intrinsic Value, PSU</a></td>
<td class="nump">$ 32.9<span></span>
</td>
<td class="nump">$ 30.3<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of PSUs Granted (in shares)</a></td>
<td class="nump">63,651<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">PSUs Granted, Weighted-Average Granted Date Fair Value (in dollars per share)</a></td>
<td class="nump">$ 63.05<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Number of Units Outstanding (in shares)</a></td>
<td class="nump">474,631<span></span>
</td>
<td class="nump">410,980<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted-Average Grant Date Fair Value, PSU (in dollars per share)</a></td>
<td class="nump">$ 33.24<span></span>
</td>
<td class="nump">$ 29.17<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber', window );">Vested or expected to vest, RSU (in shares)</a></td>
<td class="nump">474,631<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Vested or expected to vest, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 33.24<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Vested or expected to vest, weighted-average remaining contractual life (Year)</a></td>
<td class="text">5 years 1 month 6 days<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 32.9<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable', window );">Exercisable, number of units (in shares)</a></td>
<td class="nump">355,675<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue', window );">Exercisable, PSU weighted-average granted date fair value (in dollars per share)</a></td>
<td class="nump">$ 24.17<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm', window );">Exercisable, Weighted-Average Remaining Contractual, PSU (Year)</a></td>
<td class="text">3 years 10 months 24 days<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable', window );">Exercisable, Aggregate Intrinsic Value, PSU</a></td>
<td class="nump">$ 24.6<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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of equity-based compensation awards exercisable. Excludes stock and unit options.</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;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 units exercisable other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</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;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fair value of exercisable awards on equity-based plans excluding option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, revenue or profit achievement stock award plan) for which the employer is contingently obligated to issue equity instruments or transfer assets to an employee who has not yet satisfied service or performance criteria necessary to gain title to proceeds from the sale of the award or underlying shares or units.</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;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for vested portions of equity instruments other than options outstanding and currently exercisable or convertible, 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>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;">dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for equity-based awards excluding 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 equity instruments other than options outstanding, including both vested and non-vested instruments.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fully vested and expected to vest exercisable options that may be converted into shares under option plan. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of outstanding award under share-based payment arrangement. Excludes share and unit options.</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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding</td>
</tr>
<tr>
<td style="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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="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_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893937497488">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details) - shares<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock-Based Compensation Plans</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_dsgx_CRSUAwardsWeightedAverageContractualLife', window );">Weighted-Average Remaining Contractual Life, CRSU (Year)</a></td>
<td class="text">1 year 7 months 6 days<span></span>
</td>
<td class="text">1 year 4 months 24 days<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_dsgx_CRSUAwardsGrantsInPeriod', window );">Number of Units Granted, CRSU (in shares)</a></td>
<td class="nump">7,948<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_dsgx_CRSUAwardsVestedAndSettledInCash', window );">Number of Units Vested and settled in cash, CRSU (in shares)</a></td>
<td class="num">(9,463)<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_dsgx_CRSUAwardsForfeitedInPeriod', window );">Number of Units Forfeited, CRSU (in shares)</a></td>
<td class="num">(74)<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_dsgx_CRSUAwardsOutstandingNumber', window );">Number of Units Outstanding, CRSU (in shares)</a></td>
<td class="nump">22,839<span></span>
</td>
<td class="nump">24,428<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_dsgx_CRSUAwardNonvestedNumber', window );">Non-vested, CRSU (in shares)</a></td>
<td class="nump">22,839<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_dsgx_CRSUAwardNonvestedWeightedAverageContractualLife', window );">Non-vested, Weighted-Average Remaining Contractual Life, CRSU (Year)</a></td>
<td class="text">1 year 7 months 6 days<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_dsgx_CRSUAwardNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 nonvested CRSU awards.</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;">dsgx_CRSUAwardNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CRSUAwardNonvestedWeightedAverageContractualLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 remaining contractual life of nonvested CRSU awards.</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;">dsgx_CRSUAwardNonvestedWeightedAverageContractualLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CRSUAwardsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Related to CRSU awards forfeited in 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;">dsgx_CRSUAwardsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CRSUAwardsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 CRSU grants in 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;">dsgx_CRSUAwardsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CRSUAwardsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 CRSU awards outstanding.</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;">dsgx_CRSUAwardsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CRSUAwardsVestedAndSettledInCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 CRSU awards vested and settled in cash.</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;">dsgx_CRSUAwardsVestedAndSettledInCash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_CRSUAwardsWeightedAverageContractualLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 remaining contractual life of CRSU awards.</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;">dsgx_CRSUAwardsWeightedAverageContractualLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="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>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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139894014205120">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Additional information (Details)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_dsgx_IncomeTaxDisclosureLineItems', window );"><strong>Income Taxes</strong></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>
</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 Reconciliation, Percent</a></td>
<td class="nump">27.80%<span></span>
</td>
<td class="nump">10.50%<span></span>
</td>
<td class="nump">26.00%<span></span>
</td>
<td class="nump">15.30%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_IncomeTaxDisclosureLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>N/A</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;">dsgx_IncomeTaxDisclosureLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>94
<FILENAME>R82.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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893926193168">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_RevenueFromContractWithCustomerAbstract', window );"><strong>Contract Balances, Performance Obligations and Contract Costs</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_ContractWithCustomerLiability', window );">Beginning balance</a></td>
<td class="nump">$ 58,700<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_ContractWithCustomerLiabilityRevenueRecognized', window );">Recognition of previously deferred revenue</a></td>
<td class="num">(24,236)<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_dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue', window );">Deferral of revenue</a></td>
<td class="nump">36,034<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_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination', window );">Increases from business combinations, net</a></td>
<td class="nump">2,035<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_dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange', window );">Effect of movements in foreign exchange</a></td>
<td class="num">(4,240)<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_ContractWithCustomerLiability', window );">Ending balance</a></td>
<td class="nump">68,293<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_DeferredRevenueCurrent', window );">Current</a></td>
<td class="nump">66,547<span></span>
</td>
<td class="nump">$ 56,780<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_ContractWithCustomerLiabilityNoncurrent', window );">Long-term</a></td>
<td class="nump">1,746<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_ContractWithCustomerAssetNet', window );">Balance at January 31, 2022</a></td>
<td class="nump">1,443<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_ContractWithCustomerAssetReclassifiedToReceivable', window );">Transfers to trade receivables from contract assets</a></td>
<td class="num">(464)<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_dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet', window );">Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables</a></td>
<td class="nump">1,983<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_dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange', window );">Effect of movements in foreign exchange</a></td>
<td class="num">(3)<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_ContractWithCustomerAssetNet', window );">Balance at July 31, 2022</a></td>
<td class="nump">$ 2,959<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_dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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) to the contract asset during the period attributable to the effect of movements in foreign 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;">dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the contract asset during the period from term licenses recognized as revenue during the period, net of amounts transferred to trade receivables.</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;">dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 obligation to transfer good or service to customer for which consideration from customer has been received or is due, from movements in foreign 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;">dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from deferral of revenue.</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;">dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_ContractWithCustomerAssetNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130549-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130531-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130533-203044<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_ContractWithCustomerAssetNet</td>
</tr>
<tr>
<td style="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_ContractWithCustomerAssetReclassifiedToReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 decrease in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time from transfer to receivable due to right to consideration becoming unconditional.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130551-203045<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_ContractWithCustomerAssetReclassifiedToReceivable</td>
</tr>
<tr>
<td style="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_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 obligation to transfer good or service to customer for which consideration has been received or is 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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130549-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130532-203044<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_ContractWithCustomerLiability</td>
</tr>
<tr>
<td style="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_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 obligation to transfer good or service to customer for which consideration from customer has been received or is due, from business combination.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130551-203045<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_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination</td>
</tr>
<tr>
<td style="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_ContractWithCustomerLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130532-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=123360276&amp;loc=SL49130531-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130549-203045<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_ContractWithCustomerLiabilityNoncurrent</td>
</tr>
<tr>
<td style="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_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130549-203045<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_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="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_DeferredRevenueCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and obligation to transfer product and service to customer for which consideration has been received or is receivable, 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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_DeferredRevenueCurrent</td>
</tr>
<tr>
<td style="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_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="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>R83.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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893926185008">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Contract Balances, Performance Obligations and Contract Costs (Details)<br> $ in Millions</strong></div></th>
<th class="th">
<div>Jul. 31, 2022 </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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</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_RevenueRemainingPerformanceObligation', window );">Remaining performance obligation, Amount</a></td>
<td class="nump">$ 371.9<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_RevenueRemainingPerformanceObligationPercentage', window );">Remaining performance obligation, Percentage</a></td>
<td class="nump">80.00%<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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-01-31', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-01-31</a></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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Remaining performance obligation, Period (Month)</a></td>
<td class="text">24 months<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_RevenueRemainingPerformanceObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 transaction price allocated to performance obligation that has not been recognized as revenue.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130556-203045<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_RevenueRemainingPerformanceObligation</td>
</tr>
<tr>
<td style="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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems</td>
</tr>
<tr>
<td style="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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period in which remaining performance obligation is expected to be recognized as revenue, 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130556-203045<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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</td>
</tr>
<tr>
<td style="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>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_RevenueRemainingPerformanceObligationPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 remaining performance obligation to total remaining performance obligation not recognized as revenue.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130556-203045<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_RevenueRemainingPerformanceObligationPercentage</td>
</tr>
<tr>
<td style="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>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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-01-31">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-01-31</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>96
<FILENAME>R84.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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893937422800">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Contract Balances, Performance Obligations and Contract Costs (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2022</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_RevenueFromContractWithCustomerAbstract', window );"><strong>Contract Balances, Performance Obligations and Contract Costs</strong></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="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_CapitalizedContractCostNet', window );">Capitalized contract cost, net, Total</a></td>
<td class="nump">$ 17.3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 17.3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 16.6<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_CapitalizedContractCostAmortization', window );">Capitalized contract cost, amortization</a></td>
<td class="nump">$ 1.4<span></span>
</td>
<td class="nump">$ 1.2<span></span>
</td>
<td class="nump">$ 2.8<span></span>
</td>
<td class="nump">$ 2.2<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_CapitalizedContractCostAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization expense for asset recognized from cost incurred to obtain or fulfill contract with customer.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 40<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123353750&amp;loc=SL49131252-203054<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_CapitalizedContractCostAmortization</td>
</tr>
<tr>
<td style="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_CapitalizedContractCostNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 40<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123353750&amp;loc=SL49131252-203054<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_CapitalizedContractCostNet</td>
</tr>
<tr>
<td style="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_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="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>97
<FILENAME>R85.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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893927522816">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Other Charges - Components of Other Charges (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_OtherIncomeAndExpensesAbstract', window );"><strong>Other Charges.</strong></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>
</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_BusinessCombinationAcquisitionRelatedCosts', window );">Acquisition-related costs</a></td>
<td class="nump">$ 923<span></span>
</td>
<td class="nump">$ 391<span></span>
</td>
<td class="nump">$ 1,648<span></span>
</td>
<td class="nump">$ 908<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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Contingent consideration adjustments</a></td>
<td class="nump">355<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,059<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_RestructuringCharges', window );">Restructuring plans</a></td>
<td class="nump">11<span></span>
</td>
<td class="nump">23<span></span>
</td>
<td class="nump">64<span></span>
</td>
<td class="nump">26<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_OtherCostAndExpenseOperating', window );">Other non-operating expense, Total</a></td>
<td class="nump">$ 1,289<span></span>
</td>
<td class="nump">$ 414<span></span>
</td>
<td class="nump">$ 2,771<span></span>
</td>
<td class="nump">$ 934<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_BusinessCombinationAcquisitionRelatedCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 25<br> -Paragraph 23<br> -URI http://asc.fasb.org/extlink&amp;oid=123586518&amp;loc=d3e1043-128460<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_BusinessCombinationAcquisitionRelatedCosts</td>
</tr>
<tr>
<td style="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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e7008-128479<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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1</td>
</tr>
<tr>
<td style="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_OtherCostAndExpenseOperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 total amount of other operating cost and expense items that are associated with the entity's normal revenue producing operation.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.3)<br> -URI http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<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_OtherCostAndExpenseOperating</td>
</tr>
<tr>
<td style="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_OtherIncomeAndExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OtherIncomeAndExpensesAbstract</td>
</tr>
<tr>
<td style="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_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109237686&amp;loc=d3e17752-110868<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140864-122747<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<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_RestructuringCharges</td>
</tr>
<tr>
<td style="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>98
<FILENAME>R86.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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893926158688">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_SupplementalCashFlowElementsAbstract', window );"><strong>Supplemental Cash Flow Information</strong></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>
</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_IncreaseDecreaseInAccountsReceivable', window );">Trade accounts receivable</a></td>
<td class="num">$ (1,624)<span></span>
</td>
<td class="nump">$ 316<span></span>
</td>
<td class="num">$ (4,544)<span></span>
</td>
<td class="nump">$ 1,419<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_IncreaseDecreaseInOtherReceivables', window );">Other accounts receivable</a></td>
<td class="nump">2,532<span></span>
</td>
<td class="nump">804<span></span>
</td>
<td class="nump">2,349<span></span>
</td>
<td class="nump">2,512<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_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other</a></td>
<td class="num">(286)<span></span>
</td>
<td class="num">(3,016)<span></span>
</td>
<td class="nump">493<span></span>
</td>
<td class="num">(3,543)<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_IncreaseDecreaseInInventories', window );">Inventory</a></td>
<td class="num">(18)<span></span>
</td>
<td class="num">(166)<span></span>
</td>
<td class="nump">36<span></span>
</td>
<td class="num">(338)<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_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="num">(293)<span></span>
</td>
<td class="num">(94)<span></span>
</td>
<td class="num">(1,135)<span></span>
</td>
<td class="num">(214)<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 liabilities</a></td>
<td class="num">(1,783)<span></span>
</td>
<td class="nump">5,379<span></span>
</td>
<td class="num">(3,862)<span></span>
</td>
<td class="nump">4,467<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_IncreaseDecreaseInIncomeTaxes', window );">Income taxes payable</a></td>
<td class="num">(296)<span></span>
</td>
<td class="nump">1,295<span></span>
</td>
<td class="nump">127<span></span>
</td>
<td class="num">(308)<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_dsgx_IncreaseDecreaseInOperatingLeaseLiabilities', window );">Operating leases</a></td>
<td class="num">(44)<span></span>
</td>
<td class="num">(240)<span></span>
</td>
<td class="num">(153)<span></span>
</td>
<td class="nump">43<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_IncreaseDecreaseInDeferredRevenue', window );">Deferred revenue</a></td>
<td class="nump">2,794<span></span>
</td>
<td class="nump">1,426<span></span>
</td>
<td class="nump">7,411<span></span>
</td>
<td class="nump">4,044<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_IncreaseDecreaseInOperatingCapital', window );">Increase (Decrease) in Operating Capital, Total</a></td>
<td class="nump">$ 982<span></span>
</td>
<td class="nump">$ 5,704<span></span>
</td>
<td class="nump">$ 722<span></span>
</td>
<td class="nump">$ 8,082<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_IncreaseDecreaseInOperatingLeaseLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 increase (decrease) in operating lease 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;">dsgx_IncreaseDecreaseInOperatingLeaseLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dsgx_</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_IncreaseDecreaseInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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_IncreaseDecreaseInAccountsPayable</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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_IncreaseDecreaseInDeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred income and obligation to transfer product and service to customer for which consideration has been received or is 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/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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_IncreaseDecreaseInDeferredRevenue</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amounts payable to taxing authorities for taxes that are based on the reporting entity's earnings, net of amounts receivable from taxing authorities for refunds of overpayments or recoveries of income taxes, and in deferred and other tax liabilities and 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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_IncreaseDecreaseInIncomeTaxes</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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_IncreaseDecreaseInOperatingCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of all assets and liabilities used in 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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_IncreaseDecreaseInOperatingCapital</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInOtherReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 receivables 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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_IncreaseDecreaseInOtherReceivables</td>
</tr>
<tr>
<td style="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_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 prepaid expenses, and 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<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_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="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_SupplementalCashFlowElementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SupplementalCashFlowElementsAbstract</td>
</tr>
<tr>
<td style="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>99
<FILENAME>R87.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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893929261376">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segmented Information - Segmented Revenue by Geographical Location of Customer (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></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>
</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">$ 123,011<span></span>
</td>
<td class="nump">$ 104,570<span></span>
</td>
<td class="nump">$ 239,406<span></span>
</td>
<td class="nump">$ 203,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_StatementGeographicalAxis=country_US', window );">United States</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>
</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></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>
</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">78,569<span></span>
</td>
<td class="nump">59,086<span></span>
</td>
<td class="nump">147,633<span></span>
</td>
<td class="nump">114,343<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_StatementGeographicalAxis=us-gaap_EMEAMember', window );">Europe, Middle-East and Africa</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>
</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></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>
</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">30,746<span></span>
</td>
<td class="nump">31,861<span></span>
</td>
<td class="nump">65,377<span></span>
</td>
<td class="nump">62,948<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_StatementGeographicalAxis=country_CA', window );">Canada</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>
</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></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>
</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">9,171<span></span>
</td>
<td class="nump">9,209<span></span>
</td>
<td class="nump">17,457<span></span>
</td>
<td class="nump">17,581<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_StatementGeographicalAxis=srt_AsiaPacificMember', window );">Asia Pacific</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>
</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></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>
</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical revenue</a></td>
<td class="nump">$ 4,525<span></span>
</td>
<td class="nump">$ 4,414<span></span>
</td>
<td class="nump">$ 8,939<span></span>
</td>
<td class="nump">$ 8,536<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_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9038-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130545-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130543-203045<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9031-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI http://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<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_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="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_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="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_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementGeographicalAxis=country_US</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_StatementGeographicalAxis=us-gaap_EMEAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementGeographicalAxis=us-gaap_EMEAMember</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_StatementGeographicalAxis=country_CA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementGeographicalAxis=country_CA</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_StatementGeographicalAxis=srt_AsiaPacificMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementGeographicalAxis=srt_AsiaPacificMember</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>100
<FILENAME>R88.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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893926312960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segmented Information - Segmented Revenue by Revenue Type (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jul. 31, 2021</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></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>
</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 123,011<span></span>
</td>
<td class="nump">$ 104,570<span></span>
</td>
<td class="nump">$ 239,406<span></span>
</td>
<td class="nump">$ 203,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_ProductOrServiceAxis=us-gaap_ServiceMember', window );">Service</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>
</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></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>
</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenues</a></td>
<td class="nump">109,372<span></span>
</td>
<td class="nump">93,479<span></span>
</td>
<td class="nump">212,205<span></span>
</td>
<td class="nump">181,799<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_ProductOrServiceAxis=dsgx_ProfessionalServicesAndOtherMember', window );">Professional services and other</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>
</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></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>
</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenues</a></td>
<td class="nump">10,359<span></span>
</td>
<td class="nump">9,935<span></span>
</td>
<td class="nump">21,607<span></span>
</td>
<td class="nump">19,114<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_ProductOrServiceAxis=us-gaap_LicenseMember', window );">License</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>
</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></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>
</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 3,280<span></span>
</td>
<td class="nump">$ 1,156<span></span>
</td>
<td class="nump">$ 5,594<span></span>
</td>
<td class="nump">$ 2,495<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_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9038-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130545-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130543-203045<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9031-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI http://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<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_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="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_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="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_srt_ProductOrServiceAxis=us-gaap_ServiceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ProductOrServiceAxis=us-gaap_ServiceMember</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_ProductOrServiceAxis=dsgx_ProfessionalServicesAndOtherMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ProductOrServiceAxis=dsgx_ProfessionalServicesAndOtherMember</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_ProductOrServiceAxis=us-gaap_LicenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ProductOrServiceAxis=us-gaap_LicenseMember</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>101
<FILENAME>R89.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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893926355744">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Segmented Information - Long-lived Assets by Geographical Location (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Jan. 31, 2022</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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_NoncurrentAssets', window );">Geographical long-lived assets</a></td>
<td class="nump">$ 263,965<span></span>
</td>
<td class="nump">$ 240,426<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_StatementGeographicalAxis=country_US', window );">United States</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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_NoncurrentAssets', window );">Geographical long-lived assets</a></td>
<td class="nump">145,327<span></span>
</td>
<td class="nump">102,649<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_StatementGeographicalAxis=us-gaap_EMEAMember', window );">Europe, Middle-East and Africa</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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_NoncurrentAssets', window );">Geographical long-lived assets</a></td>
<td class="nump">36,476<span></span>
</td>
<td class="nump">43,922<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_StatementGeographicalAxis=country_CA', window );">Canada</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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_NoncurrentAssets', window );">Geographical long-lived assets</a></td>
<td class="nump">74,569<span></span>
</td>
<td class="nump">84,943<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_StatementGeographicalAxis=srt_AsiaPacificMember', window );">Asia Pacific</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_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</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_NoncurrentAssets', window );">Geographical long-lived assets</a></td>
<td class="nump">$ 7,593<span></span>
</td>
<td class="nump">$ 8,912<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_NoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and 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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e9038-108599<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_NoncurrentAssets</td>
</tr>
<tr>
<td style="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_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</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_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="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_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementGeographicalAxis=country_US</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_StatementGeographicalAxis=us-gaap_EMEAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementGeographicalAxis=us-gaap_EMEAMember</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_StatementGeographicalAxis=country_CA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementGeographicalAxis=country_CA</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_StatementGeographicalAxis=srt_AsiaPacificMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StatementGeographicalAxis=srt_AsiaPacificMember</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>102
<FILENAME>R90.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.22.2.2</span><table class="report" border="0" cellspacing="2" id="idm139893935529200">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segmented Information - Additional information (Details)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jul. 31, 2022 </div>
<div>segment</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_SegmentReportingAbstract', window );"><strong>Segmented Information.</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_NumberOfReportableSegments', window );">Number of reportable segments</a></td>
<td class="nump">1<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_NumberOfReportableSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8672-108599<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_NumberOfReportableSegments</td>
</tr>
<tr>
<td style="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:integerItemType</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_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="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>103
<FILENAME>dsgx-20220731x6k_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:country="http://xbrl.sec.gov/country/2021"
  xmlns:dei="http://xbrl.sec.gov/dei/2021q4"
  xmlns:dsgx="http://www.descartes.com/20220731"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2021-01-31"
  xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="dsgx-20220731.xsd" xlink:type="simple"/>
    <context id="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_6_7_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_NcibMember_p3VADXYsnkOmra0hT-olgg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:NcibMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-06-07</instant>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_vmTAj8vqTEWX4BNqKY-ywA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_9NbrpyJUbUixEiZw2CSJLA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_5dtDoUFn90Cf1Uz3aQBxUQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_IUSMXES3e0G98_Nl42VxJQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_0vSutx5O3E2OTQBYu6pIOQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_dJ4ciwEjBEajbrBRy0hwwA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_7T2YAquFC0aZRLJzcvYVfw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_w8Otneg3fkeoXZfNKS70XQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_pUGHBNsNok6WZDQYnp7-0w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-04-30</instant>
        </period>
    </context>
    <context id="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_SROVFoXSFUi2HB_eu2FtaQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-04-30</instant>
        </period>
    </context>
    <context id="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_AFLvLrkv7E-PjtjbQbdT6g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-04-30</instant>
        </period>
    </context>
    <context id="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_I6V1RBq5OEi2iCQW2H25fQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-04-30</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_vxFFOi_UTUm97LTRGmZo_Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_G2YKQCozLkiqmNfVx3GYzw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_szPTAZYeFU-GSSCfwN7xHg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_lidI5ZLt1UubjTcc2dHpNA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_XRgs6qBC3EydW7DXSKiU-Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_7kER6yGQ5UixQs_pGKDBxA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_RfDICflvCUCMrKJONVf4OQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_H6X6jumyKUq_I2OeW1jgFQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-07-31</instant>
        </period>
    </context>
    <context id="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xEMMXMJ2wEmS2XKAjknwPQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-04-30</instant>
        </period>
    </context>
    <context id="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_jAjcsK4LGUCwDLYGQcPBLw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-04-30</instant>
        </period>
    </context>
    <context id="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_aef84jkEt0a10HoxjWSO9A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-04-30</instant>
        </period>
    </context>
    <context id="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_lMSiCLkpYkycKtX6lAIkdA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-04-30</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_zsQ_iyoOHUGLl26dG-RnNw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_yTpa1AUx-Eyj5brPEZ29AQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_9StPdzlsc06aOHVHesVO3g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_n-ruEF-ZQkuvOR7k_4ortg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_XJmVqfLn7UiFJvCqxwOAlA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_26mOEtGXe0GfTRnsQBkcJw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_H7_2is4f7UCcfvvfAI23GA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Xr1rfxtcIEavXwIdjmzWTQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_XnYSDwS3ckiVl3gWyWt_5Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_1_30_2022_To_1_30_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Cvlh80GwZkONLsvFvRGc9g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-30</startDate>
            <endDate>2022-01-30</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_UengJu3z4UW0I8qVKvgHTA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_H6_bruhxJ0-p58CUiuS77w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_CI-4MPED-ke4lzaujLl9Sw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_dsgx_cnst_date_20240131_k2HD3LKap0ehF6JYckIKpQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2024-01-31</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_A7WtsFHS9kmXI4q2dGn2gA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_LicenseMember_TB9HG7ofT0OWXw7So_cm1g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_btaY4H9daEma1W8qLvthrQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_vbX-BxKaYkulIK-ayneTqw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_V25NG4_cvUWiicFrilzxtw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_US_LM8UEWr-akK4uz9XAMOzEw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_CA_PCO3YgDJ10-7E7HGGWLnRw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_BikqrCJ3xEyS9Q-KDI86Ow">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_LicenseMember_Ku6UHMAKWkKcmy2Hmd9iHQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_xQV0g9YTjEWhiV6TK6Xs0Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_7aOIDzHHike5efYGK3u0Ng">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_XqUNulpGiEyNd8I7oLR4OA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_US_wn0HajC2nkul8AtuYTpmEA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_CA_GWK4x4v2CEO_XLZfGy4bag">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_ServiceMember_43sUi3ul-UOzGe1J9Gy58g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_LicenseMember_3xas_FV3M0a4zfLl70egdg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_nrWbupFMDkiD5GLPdJg2vQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_PXEq-FoxX0GyI-x9c5j4sw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_6rNcHEtOs0i2BlhU3n3nEw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_US_rdpHPX8-RkG7V9SXI0qxcA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_CA_zWrhy0zO8ESEDpZaYPzUVw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_ServiceMember_jy6bqD3tY0GKq9Sx1SkZ_g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ServiceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_LicenseMember_S3YLuvmZpEq_FkwndXvsfw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:LicenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_rmXOAYu2RU-9ipiaM52qPQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_FL7r54afS0a9LIn9iwwnYQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_3l-CMECCdkS3gfrkAOIktA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">dsgx:ProfessionalServicesAndOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_US_XqbktfH3ZU6TXY2HllApHg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_CA_CPoxotEBkEWfPnuMEyPhGA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_8O7PftPd6kKdVOK7zscclQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:AssetUnderConstructionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_zMPNAff-PUSrXTaEHWbdVA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:AssetUnderConstructionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="Duration_4_21_2022_To_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_vMPO0h0pMEy6O0AHxSKXHA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-04-21</startDate>
            <endDate>2022-04-21</endDate>
        </period>
    </context>
    <context id="Duration_5_7_2021_To_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_xCNnbTGwLU-vcaIGLLrvGA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-07</startDate>
            <endDate>2021-05-07</endDate>
        </period>
    </context>
    <context id="Duration_2_26_2021_To_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_x__u-pV_nEq-QJ3t-xKcyg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-26</startDate>
            <endDate>2021-02-26</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_QT0R4zJ-lEe-crbpb0CUoA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_mqWjbqsK1kmwYw887dl3kQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_ndkrK77qHE2lHkfXCtbMXQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_ixS2ZjsVFkuqe5c-WhJ-qQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_7_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_Rgrvfe8BQkS-fShoh1IPng">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_76rjKFE2NEGWTNevfob01w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_srt_StatementGeographicalAxis_country_US_LbmGIhCiuk-iVF09MPnPkA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_srt_StatementGeographicalAxis_country_CA_B2E8GQYrAU2BZJgGDS2jAA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_P1QjWkrs6EK3EhZe-wKx1A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_XQ6JIHRYg0ytZMqjwOVMQw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_srt_StatementGeographicalAxis_country_US_fucxjzVaIkGPSUNQyy_CLA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_srt_StatementGeographicalAxis_country_CA_8XdYZkFfHUSnPuVREOILAw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_ePDREw-hwEOqAl9sq5VXGg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_uxajUT6_xEqICQOm5s4x-g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_QrHwPtBCn0G6rm5sPolb8Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_8eb08UTV2E6dj0RcdWKePw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_C96Dr75OjU-nPOSi3ga22Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_BuF-t3Bz_kGIMG3EfyvcZQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_5Tlo4Mm440Kh4zOEKiveOw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_oxyILRxCUEu1L7yVm8LWeg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_X7rdlViRlEStVH72jDoPjw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:RevolvingOperatingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Q4k64j2ck0SOPLIylYgG8w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_gKtXqmCtHEy0rsHiVP-Smw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_qKEQbeCwuEWW42gy5p0DKQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_prUnCE0vHU2CZlObbI7c3A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_dI9hliU8u0aWn49nyDCxmg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_8ld1rLDRxkauUyyOv5MDHA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_L6Q5tEToZUWhso0DTYFOZg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_h_C-Kly-a0ucy4VaYbFs6Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_-t39gF7wsECdYI-YEspJVA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_XDYsvV5MHkKRYDAH2lTCeA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Sn34rR_Epk6mFWBsDLq3SQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_D0SXk_MvtEiXuLwcU3UvhA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_ivbz6pEjTkW4wgJUuIQz_g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_-b8w6z08Lk6uPxuISf1UjA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_n3NzygIUW0Gjb1bXqN7Z-Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_cT23BQJCOEuG3s0rXxDfhA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_4Lprca85P0G6A5DuBrABKg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_dkGvOwj5QE2c4_DnhYbhAQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_tKsR3oiPt0qKSYCzx4QzFg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember__c_0Fqe_eUSGiDS4dt4L4w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_YDlDaiWMIU6cSFtE7NDx3A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_3O2Xh6XHKkmwdO2etZWiPw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_YwRWhpjCfkqbXp9akDu8IA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_uHyoEcUDJEKU4bbPWWLGug">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember__ZKuFHdJIUuHMkN80GGSYQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_tM0Q6ljYx0G_13Wkrs6Xdg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_9XJhAKFCC02Gr9iVtZ5R3w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:ShareholderApprovedStockOptionsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_4xnsem-OsUqUypo1njoeTw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_BIipgXZVjUe-1xxh7CEkbA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_mtA9I9pvSE6FG3lE9Ytp1g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_BJ-b9jesj0WuJ8oHn98s5g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_CreditFacilityAxis_dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_8EoJhpV3JkaHwSBGcVw7JA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_ZQWWnPjZ4kC4vtoza0sUuQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">dsgx:CanadaOrUsPrimeRateBaOrLiborMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_3hEr1zcNckuzwGc5-3PeAA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">dsgx:CanadaOrUsPrimeRateBaOrLiborMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_4_30_2022_zCu9-8V-R0mFcH6RwHC_bg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2022-04-30</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2021_4qpvWrhC5keRXw9vf1TjjA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2021-07-31</instant>
        </period>
    </context>
    <context id="As_Of_4_30_2021_n_mylqxJ8kqkaZJffCncEg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2021-04-30</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2021__kQXoKs9nka2lPH4vSYNEQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2021-01-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_pbr03QPzQUatoSPb1zHP2A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NH4dmPCXqkyt43LKd_9yUQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_7RMJZqFlMkGsAfeqqsS9Kg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_oGYvyNzWREuBRs8ipLm-fA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_DYR0hRlfQE--mDBFjeHcEg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_mqocVqaz_UeI7Mpi3mlvug">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_W_bJFM3kM02MWq6T9JBYYQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_a8z5KL7um0mywjtvjlv5UA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_XSJ4VRiEDEOcbBrxySGr3g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_61U7MU3Ta0OC1vAXNFhSNA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ycKV5WOoakO_m-juiyY7bA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_pCNbRm9qUkqGGcbmxYAUpw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_NhHWTTjKWUKaIx47t07K3w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_ZirpZTUoA0KXFGT5Q7rnow">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_PFLLwpuBJ06e5sYPxtoxdg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputLongTermRevenueGrowthRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_CO6nEWWreUOXktlWlKnuDA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_6DTytCMy60u5rYpVCAPrHg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputLongTermRevenueGrowthRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_ix7icJ5ImUq54HrratjVaQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:MeasurementInputTypeAxis">us-gaap:MeasurementInputDiscountRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_7G3pbM-DYEWiXhPpixkIgQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pFzojNMomkGqcY8qpc5UZg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_XsbBqKi2rE2r74EqkdhjVQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreKontainersShiptrackGreenmileNetchbAndXpsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_H41q9OpAaEGAqt9H4-r8Dw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:Fiscal2023AcquisitionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_MiURUplOH0CtyEhurZAfRw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:Fiscal2023AcquisitionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_nx45mrSRGESp-DasdCzZRw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsTechnologyLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-06-03</instant>
        </period>
    </context>
    <context id="As_Of_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CWwsUhWXiUCJ5-FFM7zwFg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-04-21</instant>
        </period>
    </context>
    <context id="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_WWC9hrkdrUCOyGkeDitcJw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-02-09</instant>
        </period>
    </context>
    <context id="As_Of_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_LN8FgHU-9UKvbyLQ1r6s7w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PortrixMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-05-07</instant>
        </period>
    </context>
    <context id="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_bvImWuAHoUmZ6rgOA5DqxA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-07-08</instant>
        </period>
    </context>
    <context id="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_TcPMxsqhxk27UTsx_qIYuA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:QuestawebMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-02-26</instant>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_U28XRtBbs0muZk8nwV65Qw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_Ljk9gnkYv0uPaFwxEUDYYQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_38FZhPckMEWtoFafv9utdg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_d3OVZMS_mEuCZt7lNdssIg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_f3x1loSyykWR7KebNXxfpQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_K0dMOw3VzUa5f3G4Caw9OA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_T-Hh_4r-0EilKfJca4OPYw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_n9nqHO6VTUSFL303QTkaqQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_GOd_19LxTkavOI2wfz95Jg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_-9Xns5fe8kyNihKddZEjtQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_4Ji9IXYRNUSjeGWZHHngCw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:StockOptionsTreasuryStockMethodMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_9tSHiegeAkacW64g2wUp3Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">dsgx:PSUsAndRSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_EWhDl7ZVq0mCz3exeypa3w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_aTKnyMu5u0ejEEjX7YbwUQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_5ZjgfwxQ9kKeGsbBNwhZSA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_Un26geBFQUmm51U5nbRQMw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_aghjWuxy_k6oZu79HpTW8A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_cEHL2mrLr0ubBY4lGGzQCg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_twm-9YcOLE2Hg0GKqFe7QA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_DTHJ6vl5_EOgIujhxjq3lw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_zOkqDq1YqkqEBgq3qiIRZg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_iG_J76izmUyc5RJ9s8njPg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_joDTZT4GSUCcdfOMtuwScQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_ZDrTvwcgTU-FjwM-oOw_JA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_2WWtkH9yn0ecjKc9l7BKEw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_SOgjxiN7tk2dm_9zqR5blA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_P_PkBBpCwku3mwVmPuuTpg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_oKsrcXb9fEOJ4N6aQC__mA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_9d2A1tfQ0U-jNDnpaKT2ug">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_8fDNx1qKbUiop-sR30AUtw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_2ZoOWAmAlUqc8VUYvo8jnQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_rvEMMoDC00y6VOD4Xt6k7w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">dsgx:EquipmentInstalledWithCustomersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_10wEBbhXE0i7e7F3PRaiXA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_mecr5EZecEGonKzTLPMcuA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_38NjDFI5L0-3FlVS6nvthg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_VRN0h6rvbkKRitpp1RHZ0w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">dsgx:EquipmentInstalledWithCustomersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="Duration_7_15_2022_To_7_15_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_ShelfProspectusMember_i6pyt466SE63916yJIm3lw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:ShelfProspectusMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-07-15</startDate>
            <endDate>2022-07-15</endDate>
        </period>
    </context>
    <context id="Duration_7_16_2020_To_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_9LgcrpS3ukSQ1CCrr0Y10w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:The2020BaseShelfProspectusMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-07-16</startDate>
            <endDate>2020-07-16</endDate>
        </period>
    </context>
    <context id="As_Of_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_Nwn-TiE_lkKwtV7AsYtq2w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:The2020BaseShelfProspectusMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-07-16</instant>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="Duration_6_7_2022_To_6_7_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_NcibMember_RAmCuWCVF0WQXKHFuf7B2A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:NcibMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-06-07</startDate>
            <endDate>2022-06-07</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_75Y7Xv7uqkWercYgCqOHjw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_u8Eak7lD3EC3U2Nh5WI3gw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_YliF3vhnP0iE11BzFydcBg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_QjMMSpUPzUarN6J1mlT5hA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_EbAIlI12WUa-adjEMKumIQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_z2sIJoskBkObtdU2ysRlgA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_kA9fbVE_20-Sy3Zv7XzheA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_xEjZ57AfGkmUCg9foKrNYg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_ESIN5UiZbkK2LwQKiga11g">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_pOpE-IdgR0qB035YIFHkFw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_hWz9s3-KH0CY2efj4UpdAQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:DeferredShareUnitPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_1_31_2022_6FniHWIdoEaqbZuSVaSgbA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_TK7uSnCdt0a5El16GyXQCg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-05-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_7D-XtcsX3kiVBp_0hZ6H6w">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_5_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_gYOO354_Qkmac19gV8PY1Q">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_dEb3HPSleUS1f39A7vfEuw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">dsgx:CashSettledRestrictedShareUnitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-02-01</startDate>
            <endDate>2021-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_w82LPY6N702UfvJ80lTeaA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="Duration_6_3_2022_To_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_kQNCPTBUTUmJgPwQDwIBjQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsTechnologyLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-06-03</startDate>
            <endDate>2022-06-03</endDate>
        </period>
    </context>
    <context id="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Cai7QNLiXUWU0eTBBetnkA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-09</startDate>
            <endDate>2022-02-09</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_C9U7QPU_RUCt3x_oI08wPg">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:CoreKontainersShiptrackGreenmileNetchbAndXpsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_7_8_2021_To_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_Cc-cEfJriUuQE967stYLJA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:GreenmileMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-07-08</startDate>
            <endDate>2021-07-08</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:XpsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:NetChbLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_UjeVWj1jQEaRZOq-I18Tng">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:FoxtrotMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-02-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2022-07-31</instant>
        </period>
    </context>
    <context id="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001050140</identifier>
        </entity>
        <period>
            <instant>2022-01-31</instant>
        </period>
    </context>
    <unit id="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">
        <measure>shares</measure>
    </unit>
    <unit id="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">
        <measure>pure</measure>
    </unit>
    <unit id="Unit_Standard_segment_Utkw4iHSj0-_Y-UHchFxgQ">
        <measure>dsgx:segment</measure>
    </unit>
    <unit id="Unit_Standard_EUR_Zg9NuFmbbkqFLhsENpy6DA">
        <measure>iso4217:EUR</measure>
    </unit>
    <dei:DocumentPeriodEndDate
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tc_gmzZ-SWDJUG5sl_LTtfY8A_3_1">2022-07-31</dei:DocumentPeriodEndDate>
    <dei:CurrentFiscalYearEndDate
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tc_KC9cx4Ec90iewmacJpOFKw_4_1">--01-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalPeriodFocus
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tc_7cMhDlNk7UyG9AGGvTAa4w_5_1">Q2</dei:DocumentFiscalPeriodFocus>
    <dei:EntityCentralIndexKey
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tc_7V_nG0CFf0S57WMAW2FBOw_6_1">0001050140</dei:EntityCentralIndexKey>
    <dei:AmendmentFlag
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tc_F65Hw9jQK0OFEPaWMdi1YA_7_1">false</dei:AmendmentFlag>
    <dei:DocumentFiscalYearFocus
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tc_A8J9zqIaB0K4nxPJoobxqg_8_1">2023</dei:DocumentFiscalYearFocus>
    <dei:DocumentType
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Narr_NunbIWEgZ0auEUOeFRvL2g">6-K</dei:DocumentType>
    <dei:EntityRegistrantName
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Narr_6ZhdtBj1hUS7T4FHt0x8Fw">DESCARTES SYSTEMS GROUP INC</dei:EntityRegistrantName>
    <us-gaap:CommitmentsAndContingencies
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      id="Hidden_krbHnVskr0azyJOMV0KMQw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      id="Hidden_uoQLI7n48EauH-LAxFpz4Q"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw"
      xsi:nil="true"/>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="INF"
      id="Hidden_a8_9DglvGECN4uvOONe2Fw"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">84756210</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="INF"
      id="Hidden_EDCYd87Tq0GahtIYYqlOkQ"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">84788547</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput
      contextRef="As_Of_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_PFLLwpuBJ06e5sYPxtoxdg"
      decimals="0"
      id="Hidden_pSZxK8rp70Ke_RaEGReiMQ"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">10</us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput
      contextRef="As_Of_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputLongTermRevenueGrowthRateMember_6DTytCMy60u5rYpVCAPrHg"
      decimals="0"
      id="Hidden_EhMWg6eEBEe5DICOqp8ajg"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">13</us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_CoYOglmyvk6203sBcSDPsw_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">189030000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_ZgzM_VcQqUOFfbxdM_ehDA_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">213437000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_lqakdbetBEGtwO_XL0BWFw_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">48913000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_4mRYGUdRaE2-dAYby5Ul1g_8_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">41705000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_ZKEhOpSwEkeOdJDPSHjnTQ_9_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">11420000</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_BoAiQ9yJT0umjNmmv8dnAA_9_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">14075000</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_IfIx2hkS5Uuqilf248UueA_10_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">20664000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_yaCe7sIlLkicUChogpfhbA_10_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">21974000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:InventoryNet
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_h6VBQozGu0GDbRSQ0QDrUA_11_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">814000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_pt7VobN2bE-SnFlThNBdnQ_11_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">868000</us-gaap:InventoryNet>
    <us-gaap:AssetsCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_rAGHMHu_J0aHk3j0vrIT5Q_12_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">270841000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_SzPk5wl88kGXrS3r5jVsFw_12_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">292059000</us-gaap:AssetsCurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_U_G97fNQSEKIMmf-IXVUhA_13_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">19262000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_R_cAv47DUEeJqdaXYk5R4g_13_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">18652000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_Rtw2HxJbq0Sn9DMcEF_FvQ_14_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">11400000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_VWMGzxBdO0OuPmi0O5L69w_14_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10817000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_yJ_LZg_gnkKj_fXaAyyp7Q_15_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">8089000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_yrJRZ7IqPEiMhGlX1xhyxw_15_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10571000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_VEX0MwxPoE-7R4uwxeaRNg_16_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">12777000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_UrmV3E1NZEWn73N5VXl2bw_16_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">14962000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_40gp2cwrdk2HDdcpzGdDYA_17_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">252565000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_Ild_c2AstUKqiaw2pi2XIQ_17_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">229609000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_WtRDSBuuSEuBblqzdU5zCQ_18_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">671802000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_JWnbAlIzI0yXveP6D96eNg_18_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">608761000</us-gaap:Goodwill>
    <us-gaap:Assets
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_nSHCxaNe4kiklqpH4F7_Mw_19_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1246736000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_NIqyZ7sZGk6jD_94jaagNA_19_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1185431000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_TmrKM45iYEmEVOlgc-UGEw_22_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">9837000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_lyIOWXkiEEivlKBN8GwSVA_22_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10566000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_nBnCp4c0I0uY-tfXrMWzBA_23_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">71416000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_wEJWq-PV9UuYwiDG5oWQvA_23_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">56442000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_rEC_WyBHmk-jHasL6Xz5IA_24_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3604000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_o4ymGtqhqkiEStZGOCOfuA_24_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4029000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_3PytBHNUekqCIDd8N-3m9A_25_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4449000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_Xs3mkTzEIkmZ3orIqLAPaw_25_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">5616000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:DeferredRevenueCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_MOgWFoCAwEKgDhXYUcrJww_26_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">66547000</us-gaap:DeferredRevenueCurrent>
    <us-gaap:DeferredRevenueCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_dGj2-4g1h0SamZQlkzPvlQ_26_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">56780000</us-gaap:DeferredRevenueCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_Pr7s6gLwbkqfT8HEqiQMGA_27_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">155853000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_FkMiSZLjlESC1Na2b7FjFQ_27_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">133433000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_PAZt9K9UnkSInVeCDMK7Jg_29_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">5094000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_ikfvWdIRhEiDC2kKboXM0w_29_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">7382000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredRevenueNoncurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_rzlvRwSx50uAOpZrRx_huw_30_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1746000</us-gaap:DeferredRevenueNoncurrent>
    <us-gaap:DeferredRevenueNoncurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_8A0-0_KRVkGdkY4jt5X8DQ_30_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1920000</us-gaap:DeferredRevenueNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_ciPKZgDg2Ei5oN5c1RM8sg_31_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">8303000</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_bMb8_fPvdkCClknkqAMZrA_31_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">7354000</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_JEl-E9ucjkGnDkujAYSmXg_32_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">37301000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_UidVfbX2YEupZL2nRPfbDA_32_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">35523000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:Liabilities
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc__E8ZkyZgO0id2IgH-Qy1fg_33_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">208297000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_NJMSZIRru061t-G37aSbEA_33_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">185612000</us-gaap:Liabilities>
    <us-gaap:CommonStockSharesIssued
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="INF"
      id="Narr_o8mcOwaKBE2lKQS6cWnYdg"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">84788547</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="INF"
      id="Narr_Q4j3_BF4FkizaW9s-sGHGA"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">84756210</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_sJz6VPufQE6JLG0Eyt5OKA_36_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">537003000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_L1SAs6wmZk6HWSusWPbacw_36_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">536297000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc__sv5posGEESN_7b2pUxMbQ_37_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">479620000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_3dKvwYToH0eLP310oargfA_37_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">473303000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_-hUtQ4QhPkGeyc_uoaMxxg_38_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-26813000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_bjtE_y0EjEOFNVZ3s1N9vA_38_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-12393000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_mOn3qCkfAEitQtsbsXiOUg_39_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">48629000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_BRqlIwEwtUqZJwl6iS6VrA_39_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2612000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_NQhdz8jLZkaKDi924gQ9IQ_40_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1038439000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_pmOyulTWqE6L_gloNfTzaw_40_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">999819000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_iwlHt0I4xUW4vPJSUaFKLA_41_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1246736000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_ydBZA7crYk227COlZQdQ0Q_41_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1185431000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_PutKDmASgUa3MC10ifqWzQ_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">123011000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_3eixhYtHXUaepiif8TPMuQ_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">104570000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_nJ1e2mr390iIltjDIFT45w_5_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">239406000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_OEP_R9mso0KWbsU9wv6NVQ_5_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">203408000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_5sUcLmltvk-82m8uNPTKnw_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">28919000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_jQa-OFbo_k2VqXlZjF43vA_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">25470000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc__3LHK3eSJEqDf-ZdWqCD6A_6_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">56742000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_i08Lf8Q73k-n2fBZVN8tHw_6_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">49319000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_iYMlcmBbZUqIIoP4x6fJWQ_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">94092000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_K5db3-S3zUeQ84oK92KigQ_7_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">79100000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_uRk1e71RUEuy2PeRwUY3Xg_7_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">182664000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_wJUdRw0w3UiYECPLnInOsA_7_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">154089000</us-gaap:GrossProfit>
    <us-gaap:SellingAndMarketingExpense
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_3MxudgqNmkqZxx08PtXUvA_9_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">14315000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_gWqoJBeHskm8pPgMj9g0BA_9_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">11328000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_NEkQhwvtYEmQ-t72G9sSbA_9_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">27551000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_v0PmF2JdO06zwQZ_IN51SQ_9_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">22339000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_gd_PArsl_UWBSArM8wWOSg_10_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">18155000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_eDspB-z5M0eEEfJOeQ9DrA_10_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">15473000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_lph7uXaf9UKqM1O9YuxtVQ_10_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">34724000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_pzR-Vy6cJkCmIvzfpArPgQ_10_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">30692000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_YGlFzkfUBEGwSLxbZ17iXQ_11_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">12700000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_9KDZFfMcGkOtx_EvHPXwEQ_11_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10855000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_4ijqOh3akECxoYfgDHeJag_11_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">24342000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_11cAeXUGGE-p_sCUWqBsuQ_11_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">21861000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_TvJzpjqlzkeNEjfKXuL9ng_12_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1289000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_a1joyIx6f0Gl9fchV7FXFg_12_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">414000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_hbwCKj06XEGCFbqECLQRxQ_12_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2771000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_mpgkStgWVECFXAlq9TON6g_12_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">934000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc__QIQrJ-MWUyNpiA_hwtuQw_13_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">16086000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_MsWR8cu9qU6M1TKu4iMnRw_13_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">14911000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_A4QlIoqEFE2LhGM4FE1XaQ_13_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">31134000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_BOJdUW0lP0KD5_U6smrxVg_13_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">28746000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:OperatingExpenses
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_LiasRpk2U0ShKc-qeSJpTw_14_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">62545000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_UFZjnILehUmr4DYQSFNCyw_14_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">52981000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_Re9hTBlX6EWdp9rxNk4BCA_14_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">120522000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_8zwpf9L4h06mRtOKmYNX2w_14_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">104572000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_62CWW3Ch6ECgoXa3ZFA56A_15_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">31547000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_fSjg7Q3rOkKlbvIeXbMOwQ_15_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">26119000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_WbCxRanK-EKMiXSOOF17qQ_15_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">62142000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_pR4Ln7lL3Eavt8Z5orVJvA_15_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">49517000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InterestExpense
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_ZjbfzeInwEWEBTxVb6oKZA_16_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">284000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_rohuX_XATkKDH_gqjIQW6g_16_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">272000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_N-8OqKp-9kSdIhW-EV8Czg_16_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">562000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_ACXtAA0GM0G35whn0TssGw_16_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">549000</us-gaap:InterestExpense>
    <us-gaap:InvestmentIncomeNet
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_aCiUMCDGoUeCbHLbaJbGhw_17_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">461000</us-gaap:InvestmentIncomeNet>
    <us-gaap:InvestmentIncomeNet
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_ZzMukIsvKEWphKSpSgxKhA_17_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">61000</us-gaap:InvestmentIncomeNet>
    <us-gaap:InvestmentIncomeNet
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_zNHYqkiJ2kCC2l6bLTQKFw_17_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">614000</us-gaap:InvestmentIncomeNet>
    <us-gaap:InvestmentIncomeNet
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_YlglIoGasEW4-oN25xlB7w_17_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">124000</us-gaap:InvestmentIncomeNet>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_WE4x7VxrgU-ot6EFeSp1xw_18_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">31724000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_B2XmAtdz80Kb7arL5JMq_A_18_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">25908000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_opcyr2qJ80eRrTV2wJEDTA_18_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">62194000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_N_CbdIVUeEi7EQ_DNbxH2A_18_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">49092000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_cgf6XFjNyUqyXLuAiVyXnw_20_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">7498000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_mtFoLixbCEGFxv52PStKXQ_20_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4732000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_MXgF8AyDIUuJ3Zi1m29f1Q_20_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">12339000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_mA6UZ22phE6r0yZXx2lhzA_20_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">6866000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_3A9PJzOda0W1ewjvQaoIFA_21_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1324000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_wg7gGIPF0UC45zKoyLeTvg_21_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-2000000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_L1ggsjgZSkyVSvjdBKp0eQ_21_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3838000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_9vQsbqB5r0i1qThN8mB0Cg_21_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">629000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_jFshhYo-3UaIF1f5tvoIYA_22_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">8822000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc__okzoQUNG0e3PGwm6iG4QQ_22_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2732000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_lqt4yN84GkWSJAiVzb6sRg_22_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">16177000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_3nI2Rdz-Ckqb5Bp0yp9tZQ_22_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">7495000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_8R00tTTPskmbEY_FdH6a3w_23_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">22902000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_6LSlCCs_VkSEWVxdQ7YLSA_23_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">23176000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_Q0ndpoVHykeky2QoRsKwJA_23_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">46017000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc__bigc8_T40WVGFULR8HhFw_23_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">41597000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="2"
      id="Tc_30slIQ5RR0eYHr2exhX_1g_25_2"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.27</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="2"
      id="Tc_7faJlF-sfUaL6yNaAfmrFw_25_4"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.27</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="2"
      id="Tc_a58Fj4ltPkeJbeTPGioSkQ_25_6"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.54</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="2"
      id="Tc_wQFhX2orF06Ig2TeJ29xjQ_25_8"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.49</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="2"
      id="Tc_UVeRepBee0arT_7V1UyNgQ_26_2"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.27</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="2"
      id="Tc_m3Uk_QJ3-kCkFWS9Pfvs_g_26_4"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.27</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="2"
      id="Tc_hHmo3N2CcUqYBF3vqPPAag_26_6"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.53</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="2"
      id="Tc_6EGzxQ_Uykioto7nJQZZcg_26_8"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.48</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_9JveMkDiMUm7tiGxeTNdqA_28_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">84783000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_hCqle1xUrkiVz0_4LJoa7g_28_4"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">84566000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_3VxW8cMGx02a80jTDHrn4w_28_6"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">84774000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_Ge456PhVhEu2IL18bXj1Xw_28_8"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">84534000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_vEzym01rREy6S6-YdO6ltA_29_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">86338000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_sFtXWfhZcUOLtjVTty4qzQ_29_4"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">86128000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_Q4qHxH8wT0CSMLLBZJxlmQ_29_6"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">86344000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_g3Da5rCP90i0DziNti3BLA_29_8"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">86066000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_2qk-alwAvEuMGFcb3-DX1g_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">22902000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_psnQRjOX4UCgNd3TWw7CVQ_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">23176000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_l-zbE0_a6U2jLuGsEykdSQ_5_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">46017000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_188jhCi5XU6OpnDOnK2K-A_5_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">41597000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Narr_QeAYSGtvxk6L4C5RP43KoA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">88000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Narr_AMKzks7e6kqa5KJ1SghoOA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">208000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Narr_bjmIhgQzR0-pvJ6gCeI_hA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Narr_QUjfF5nwXkGPo50IXcL7PA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">186000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_MtBkzqlz2U2k_K9HbGNr9w_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-2802000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_Xp2wvrDcCE6YltWZho3HcQ_7_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-7400000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_sed19XOBi02KUm-TM578XQ_7_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-14420000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_b8dsMVgYS0er7KqSaqU1Dw_7_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3482000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_PMBGYj5jjk6YxVC3Ly4NQg_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-2802000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_DqS2IL2RjUapp8MT5arByg_8_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-7400000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_ZwsQ7sRXwEG6BRa-Ri6gvw_8_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-14420000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTax
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_XJOMelFfDkOmOpyl3750Pw_8_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3482000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_D_5v9zinqE6alrwD_kM2eQ_9_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">20100000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_0mTgQu77VkW0Z9UlCGfLSQ_9_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">15776000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_eJKkGlZPPU6kjW5q_u20kg_9_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">31597000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_asvj1S6AkkWxjZs3SoQGSQ_9_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">45079000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_SROVFoXSFUi2HB_eu2FtaQ"
      decimals="-3"
      id="Tc_H3uVCWzhREaZj42YIDeg7g_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">536842000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_jAjcsK4LGUCwDLYGQcPBLw"
      decimals="-3"
      id="Tc_FHKbv1Zoi02mxVU_OcPi5Q_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">532634000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_G2YKQCozLkiqmNfVx3GYzw"
      decimals="-3"
      id="Tc_AJkZr-wGbEGFkgZ0VKWTew_6_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">536297000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_yTpa1AUx-Eyj5brPEZ29AQ"
      decimals="-3"
      id="Tc_4lSvfWZcDkCJmbhyH-N00g_6_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">531825000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_vmTAj8vqTEWX4BNqKY-ywA"
      decimals="-3"
      id="Tc_8vZ_ndRmhUaLbOx1JD7vfw_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">161000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_5dtDoUFn90Cf1Uz3aQBxUQ"
      decimals="-3"
      id="Tc_D0qisBmHgkmd6APeWO6gsQ_7_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1576000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_9NbrpyJUbUixEiZw2CSJLA"
      decimals="-3"
      id="Tc_SggFseDWVkSCCzt0HjNxrA_7_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">706000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_IUSMXES3e0G98_Nl42VxJQ"
      decimals="-3"
      id="Tc_jsKlGsGTx0WQMyY5oz6gWA_7_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2385000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_dJ4ciwEjBEajbrBRy0hwwA"
      decimals="-3"
      id="Tc_001DU85VKkKiDFXrDVaj5Q_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">537003000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_7kER6yGQ5UixQs_pGKDBxA"
      decimals="-3"
      id="Tc_umQ3i_yg3E6VBzKB0lTdxw_8_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">534210000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_dJ4ciwEjBEajbrBRy0hwwA"
      decimals="-3"
      id="Tc_G6mfHZm9iEKjgEFYaAr7Fw_8_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">537003000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_7kER6yGQ5UixQs_pGKDBxA"
      decimals="-3"
      id="Tc_MsOQ8TiUTEm-cv1DA4HigQ_8_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">534210000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_AFLvLrkv7E-PjtjbQbdT6g"
      decimals="-3"
      id="Tc_3sytW5AjUUm2eOs3iHFPbw_11_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">475934000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_aef84jkEt0a10HoxjWSO9A"
      decimals="-3"
      id="Tc_lKxkBbZP0U2olR7PrTwzGQ_11_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">466093000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_szPTAZYeFU-GSSCfwN7xHg"
      decimals="-3"
      id="Tc_GM8R96j-dEWCOH0AL66jTA_11_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">473303000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_9StPdzlsc06aOHVHesVO3g"
      decimals="-3"
      id="Tc_mIUb3DPiW0aHPFsRIQpIYA_11_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">464102000</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_2WWtkH9yn0ecjKc9l7BKEw"
      decimals="-3"
      id="Tc_8aYCohtYbE6tl1sCUnK7sA_12_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3736000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_P_PkBBpCwku3mwVmPuuTpg"
      decimals="-3"
      id="Tc_TOeN_lZRwkGqPCxTMeSGKw_12_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3015000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_SOgjxiN7tk2dm_9zqR5blA"
      decimals="-3"
      id="Tc_k7hn66Cq-UWOd_G4GgSkPw_12_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">6523000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_oKsrcXb9fEOJ4N6aQC__mA"
      decimals="-3"
      id="Tc_tKD72dHnjE23nVQGEuE6oQ_12_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">5167000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_2WWtkH9yn0ecjKc9l7BKEw"
      decimals="-3"
      id="Tc_BrQuaC2QAE2A76lW33V1qA_13_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-50000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_P_PkBBpCwku3mwVmPuuTpg"
      decimals="-3"
      id="Tc_5VGfNOMfS0WpkBD7lsfbRg_13_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-727000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_SOgjxiN7tk2dm_9zqR5blA"
      decimals="-3"
      id="Tc_ObhVuuQ8kkmJBpckFpsK5w_13_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-206000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_oKsrcXb9fEOJ4N6aQC__mA"
      decimals="-3"
      id="Tc_U85vxzi4EUih_zj6wcvKrA_13_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-888000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_7T2YAquFC0aZRLJzcvYVfw"
      decimals="-3"
      id="Tc_UERD8F_T502oHMct7__oLg_14_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">479620000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_RfDICflvCUCMrKJONVf4OQ"
      decimals="-3"
      id="Tc_km_kx2NyhEC3tbBLyAFTog_14_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">468381000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_7T2YAquFC0aZRLJzcvYVfw"
      decimals="-3"
      id="Tc_SURH9djGlUu6gtRFvuVDNQ_14_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">479620000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AdditionalPaidInCapitalMember_RfDICflvCUCMrKJONVf4OQ"
      decimals="-3"
      id="Tc_1pHgxF978UqWrDYesbjxAw_14_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">468381000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_I6V1RBq5OEi2iCQW2H25fQ"
      decimals="-3"
      id="Tc_a52rnySd5kmhkFrmbecBjA_17_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-24011000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_lMSiCLkpYkycKtX6lAIkdA"
      decimals="-3"
      id="Tc_x_8Tkp_HTUixr7Th_SpUPQ_17_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">9693000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_lidI5ZLt1UubjTcc2dHpNA"
      decimals="-3"
      id="Tc_JJnIcr4V506lIul-rREGAA_17_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-12393000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_n-ruEF-ZQkuvOR7k_4ortg"
      decimals="-3"
      id="Tc_012yvN_uakyfIkIcjJAOZg_17_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-1189000</us-gaap:StockholdersEquity>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_QT0R4zJ-lEe-crbpb0CUoA"
      decimals="-3"
      id="Tc_LY54SMnus06YE4kOapZi0A_18_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-2802000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_ndkrK77qHE2lHkfXCtbMXQ"
      decimals="-3"
      id="Tc_8kpgrQg4G0CIlOetFPJtmQ_18_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-7400000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_mqWjbqsK1kmwYw887dl3kQ"
      decimals="-3"
      id="Tc_OCwItpWh6UCQ7rRastz91A_18_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-14420000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_ixS2ZjsVFkuqe5c-WhJ-qQ"
      decimals="-3"
      id="Tc_IsYBxTcAsEmzrqWvb-oboQ_18_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3482000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_w8Otneg3fkeoXZfNKS70XQ"
      decimals="-3"
      id="Tc_DzvVE6_-w0uJ8jTZgFAVTA_19_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-26813000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_H6X6jumyKUq_I2OeW1jgFQ"
      decimals="-3"
      id="Tc_BXQzwJB190amH7lBSmqEIg_19_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2293000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_w8Otneg3fkeoXZfNKS70XQ"
      decimals="-3"
      id="Tc_sp-FMoU1Xkq4iIMGbkI0dQ_19_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-26813000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_H6X6jumyKUq_I2OeW1jgFQ"
      decimals="-3"
      id="Tc_6cPaBZDcD0251Tn52IoL2g_19_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2293000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_4_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_pUGHBNsNok6WZDQYnp7-0w"
      decimals="-3"
      id="Tc_8z7c-3zISkaEQPcRfnMAgg_22_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">25727000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_4_30_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_xEMMXMJ2wEmS2XKAjknwPQ"
      decimals="-3"
      id="Tc_YZ5djHTFTE20B51NZIKu3g_22_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-65249000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_vxFFOi_UTUm97LTRGmZo_Q"
      decimals="-3"
      id="Tc_TWH8-bDrBkygw89jL1OXOg_22_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2612000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_zsQ_iyoOHUGLl26dG-RnNw"
      decimals="-3"
      id="Tc_Tx_EH77YWUuM4gehn8Wl3g_22_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-83670000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_ePDREw-hwEOqAl9sq5VXGg"
      decimals="-3"
      id="Tc__OgQdaE2s0SSiN8PQb7UHA_23_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">22902000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_QrHwPtBCn0G6rm5sPolb8Q"
      decimals="-3"
      id="Tc_BrP8DzwiR0WH-qgQ-JzNaQ_23_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">23176000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_uxajUT6_xEqICQOm5s4x-g"
      decimals="-3"
      id="Tc_oo61i01bJky7K3C6Yqlakw_23_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">46017000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_8eb08UTV2E6dj0RcdWKePw"
      decimals="-3"
      id="Tc_MgP8Q7gvYkOQbPjEbV2SwQ_23_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">41597000</us-gaap:NetIncomeLoss>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_0vSutx5O3E2OTQBYu6pIOQ"
      decimals="-3"
      id="Tc_A6JeG2TI3UG7gAlYvWOHDA_24_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">48629000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_XRgs6qBC3EydW7DXSKiU-Q"
      decimals="-3"
      id="Tc_QylmLs0ee06o-9mz0CDrVw_24_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-42073000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_0vSutx5O3E2OTQBYu6pIOQ"
      decimals="-3"
      id="Tc_qP-qqecQaEeAoXglpV5YHw_24_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">48629000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_RetainedEarningsMember_XRgs6qBC3EydW7DXSKiU-Q"
      decimals="-3"
      id="Tc_LflBkjwYzkatxVqO74BbWA_24_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-42073000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_AUljXYQ2pkKBG5jCjf3hDw_26_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1038439000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2021_4qpvWrhC5keRXw9vf1TjjA"
      decimals="-3"
      id="Tc_nRB8bFjZRUy_8s-6suNb8Q_26_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">962811000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_AnxQWEYUiUOfbB3IePG7Gg_26_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1038439000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="As_Of_7_31_2021_4qpvWrhC5keRXw9vf1TjjA"
      decimals="-3"
      id="Tc_Rd7ZrQcRkE-4IFNAspMa2g_26_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">962811000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_H-sSaHqUwEGh8M7UfF2GiA_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">22902000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_7B-d3hSo7keefce-n3VVgQ_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">23176000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_TMNyoDEbo0u85-mNt2GLVg_5_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">46017000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_jyLeFzS6TEqUtUtdPMx4kA_5_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">41597000</us-gaap:NetIncomeLoss>
    <us-gaap:Depreciation
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_OOp-Fi7Uok-TYTHqXx8kVg_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1301000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_zLxBnNXVtEuT82fqryDDtg_7_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1287000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_qK6BCjX83UORRP8coOZrkw_7_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2546000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_tXhPA7lPhU-RV0UkoZiAbw_7_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2502000</us-gaap:Depreciation>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_3ETaOC5BK0-6hWOb0Scezw_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">16086000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_BCxSEe4yrUSz9Kdgzs0lSw_8_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">14911000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_iCfNQRLFhUK2DX7iIls31w_8_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">31134000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_oA673KjsR0WCW7z3x__TRw_8_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">28746000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_ZLHy5npWPku993lEnSf57A_9_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3736000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_8XXDv1X_wEOdeqqbj4TUgw_9_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3015000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_iAERp19KT0qZ3uvBgY71Gg_9_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">6523000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_6WZGZRSTm0SPx5NZvBqD1Q_9_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">5167000</us-gaap:ShareBasedCompensation>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_i6_6ABTcvUOlsCUOrJCyIg_10_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-68000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_Vmf3uY6vfU6xTuqafClIWA_10_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-281000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_pi3o77cy_UapkF0BjJbrCQ_10_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-51000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_llYUUawENkydEx8m6Dbapg_10_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-557000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_No36mgjzvUGa8UGd7QLP-A_11_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1324000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_zJ3ljkIhJkO1YB3yYcASGg_11_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-2000000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_bYl3PHx-nE6cqB9JrXQSCw_11_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3838000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_2WiFlyFaK0mvzir85kOTjQ_11_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">629000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_kL7BQQD6KEaz70fUHT5D9A_12_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-982000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_8_1Jea9M40uvJHwquP5OSQ_12_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-5704000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_MiUUYs_gFESjGnnHAPIbKA_12_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-722000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_J0Z9XFe1dUuuqnyt65Dsww_12_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-8082000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_E26-99Chrk64kJNfIvfz9w_13_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">46399000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_IXMMjfqZQ0SE33TqjRx_Eg_13_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">46374000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_Ql6cHCHhI0G-P3MtmcXxMw_13_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">90831000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_G9cTIXscgE-ui4HmtpzqSg_13_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">87280000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_NIT5SCYiiU6NcVF6NaUfOA_15_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1786000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_pdk3mYiCa0GKU9pC7pD-VQ_15_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">941000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_Asauexwd9Ei6eyqeDDTCKw_15_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3422000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_g2IE9ba82EKMOhqs-216kg_15_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2596000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_jBl-E1JEJEOvkg3-wKmkyw_16_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">61096000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_Xo74umdTbUWpQon4uTSxeQ_16_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">54418000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_XWdgUX_jz0GSqe9nPoxeEw_16_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">103988000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_F6yImr7FUk-aZrCf8nsz8w_16_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">90278000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_mxXjYHqWB0mqlRuJh7r7Ww_17_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-62882000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_B03Qecu3eE2rZAqNn6lnhw_17_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-55359000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_WcOXLYyTykaijp_sFNQNOw_17_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-107410000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_cwZ2trLSREKk0bqwRFASwA_17_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-92874000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:RepaymentsOfDebt
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_p706hEXvCEChshEcjYnYpg_19_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">0</us-gaap:RepaymentsOfDebt>
    <us-gaap:RepaymentsOfDebt
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_mQlhhJsDfkSBlJ-73d0oIg_19_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1068000</us-gaap:RepaymentsOfDebt>
    <us-gaap:RepaymentsOfDebt
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_DPYSIGsAD0CvPTUCcSWW0A_19_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">0</us-gaap:RepaymentsOfDebt>
    <us-gaap:RepaymentsOfDebt
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_ULbPwReM-Eu4ORCd9eNV9w_19_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1068000</us-gaap:RepaymentsOfDebt>
    <us-gaap:PaymentsOfDebtIssuanceCosts
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_Czg4bn8aD0KvAU-Dce7Bzg_20_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">0</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:PaymentsOfDebtIssuanceCosts
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_jw0KAW0TTUax9uU4FweLBw_20_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">0</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:PaymentsOfDebtIssuanceCosts
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_WIYtSiGR8kKHN4KoWvRjZQ_20_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">66000</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:PaymentsOfDebtIssuanceCosts
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_DZ8I9cZSQUiwYdqm7dkBKg_20_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">60000</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_c8mlwpPdO0aj5ziVS7IYpA_21_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">111000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_U2CoDDF_Wk-OdrfMpOD4gw_21_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">850000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_cdjPIifpe02G23OPmaeeXg_21_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">499000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_nNm8CQggxECCf7ahAKPpFw_21_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1497000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_egvDUHKLVkioZu6GIph3pA_22_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">5215000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_A0Xg4DtZ3kqa7aLUdE-wAg_22_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">0</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_aoxHCPkW0EOlpDNNpoOAqw_22_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">5215000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_e7CK-EX-t0K3vrZGnydEMg_22_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">0</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc__xnY0JM3GU-W_SaX4jxztA_23_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-5104000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_I2a9xH9CVUiyfBKhPiO6ow_23_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-218000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_KJBKTuWP-E-0WcOzsUiRLw_23_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-4782000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_fcS6z1Lpvkij3OvVTinByg_23_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">369000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_ifPFtJ52IkSBLWwxngMtyQ_24_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-1162000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_3BkYCeUK60Wqgw9CYGRbQQ_24_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-576000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_5p0bdqwNkEy9aBXAQD23Bg_24_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-3046000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_FoPaapAdZE-IfUR3CQsh4g_24_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-78000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_KLc3XZsS8kK02_qbr9fiRQ_25_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-22749000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc__Nx699LAvk6n7Av4UwA7wA_25_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-9779000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_Qd6lJHTooEuEPH0LNAfC9Q_25_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-24407000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_efCiyD5JX0e3788tmscDeQ_25_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-5303000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_4_30_2022_zCu9-8V-R0mFcH6RwHC_bg"
      decimals="-3"
      id="Tc_Dwdy1X5bOUqe23bx5Q8QMw_26_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">211779000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_4_30_2021_n_mylqxJ8kqkaZJffCncEg"
      decimals="-3"
      id="Tc_9fD5fJN0REiHOFMK_zI0PQ_26_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">138137000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_lvLMwl5oL0udRkE2X9NoyA_26_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">213437000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_1_31_2021__kQXoKs9nka2lPH4vSYNEQ"
      decimals="-3"
      id="Tc_ieQmMURUqkqx2mac486YHA_26_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">133661000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_d5Q5ew4IgUa3kNUIsE-Qkg_27_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">189030000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_7_31_2021_4qpvWrhC5keRXw9vf1TjjA"
      decimals="-3"
      id="Tc_RLG0bJlI106j_jkPxUqEVg_27_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">128358000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_KEDzJ_9YO0yRNVp0isrs6w_27_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">189030000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="As_Of_7_31_2021_4qpvWrhC5keRXw9vf1TjjA"
      decimals="-3"
      id="Tc_9Jn0VBkrbkOSMcMrNURHoA_27_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">128358000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_0QZZzEzCAk-GjRt3PZzWBQ_30_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3709000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_kqI9HnmKPEig4UoeLoKduQ_30_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1583000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_wrhk3e37FkyAMjyXCk_NfQ_30_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">7803000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_HAo1U90XSUiVW2gIobwemw_30_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4761000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_xBhrRP9hz0CJ_VStcFinFA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;1&#160;- Description of the Business&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The Descartes Systems Group&#160;Inc. (&#x201c;Descartes&#x201d;, &#x201c;Company&#x201d;, &#x201c;our&#x201d; or &#x201c;we&#x201d;) is a provider of global logistics technology solutions. Customers use our modular, software-as-a-service (&#x201c;SaaS&#x201d;) and data solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access and analyze global trade data; research and perform trade tariff and duty calculations; file customs and security documents for imports and exports;&#160;and complete numerous other logistics processes by participating in a large, collaborative multi-modal logistics community. Our pricing model provides our customers with flexibility in purchasing our solutions either on a subscription, transactional or perpetual license basis. Our primary focus is on serving transportation providers (air, ocean and truck modes), logistics service providers (including third-party logistics providers, freight forwarders and customs brokers) and distribution-intensive companies for which logistics is either a key or a defining part of their own product or service offering, or for which our solutions can provide an opportunity to reduce costs, improve service levels, or support growth by optimizing the use of assets and information.&lt;/span&gt;&lt;/p&gt;</us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock>
    <us-gaap:SignificantAccountingPoliciesTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_-kefOXt3zkKjCjNX0iEyxQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;2&#160;&#x2013;Basis of Presentation&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The accompanying unaudited condensed consolidated financial statements are presented in United States (&#x201c;US&#x201d;) dollars and are prepared in accordance with generally accepted accounting principles in the US (&#x201c;GAAP&#x201d;) and the rules&#160;and regulations of the Canadian Securities Administrators and US Securities and Exchange Commission (&#x201c;SEC&#x201d;) for the preparation of condensed interim financial statements. Accordingly, these unaudited condensed consolidated financial statements do not include all of the information and notes required for compliance with GAAP for annual financial statements. These statements should be read in conjunction with our audited annual consolidated financial statements prepared in accordance with GAAP for the fiscal&#160;year ended January&#160;31, 2022.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The unaudited condensed consolidated financial statements reflect all adjustments, which are, in the opinion of management, necessary for a fair presentation of results for the interim periods presented. The preparation of these unaudited condensed consolidated financial statements requires management to make estimates and assumptions that affect the amounts reported in the unaudited condensed consolidated financial statements and the accompanying notes. Actual results could differ from these estimates and the results of operations for the interim period should not be considered indicative of results to be expected for the full&#160;year ending January&#160;31, 2023.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The world continues to experience a global pandemic related to the spread of the COVID-19 virus (the &#x201c;Pandemic&#x201d;).&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; The Pandemic has had disruptive effects in countries in which the Company operates, and the future impacts of the Pandemic and any resulting economic impact are largely unknown and rapidly evolving. As the impacts of the Pandemic continue to evolve, estimates and assumptions about future events and their effects cannot be determined with certainty and therefore require increased judgment. The future impact of Pandemic uncertainties could result in a significant impact on the reported amounts of assets, liabilities, revenue and expenses in these and any future consolidated financial statements. Examples of accounting estimates and judgments that may be impacted by the Pandemic include, but are not limited to; revenue recognition, impairment of goodwill and intangible assets and provisions for credit losses.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Our fiscal&#160;year commences on February&#160;1&lt;/span&gt;&lt;sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt;&lt;span style="font-family:'Verdana';"&gt; of each&#160;year and ends on January&#160;31&lt;/span&gt;&lt;sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt;&lt;span style="font-family:'Verdana';"&gt; of the following&#160;year. Our fiscal&#160;year, which ends on January&#160;31, 2023, is referred to as the &#x201c;current fiscal&#160;year&#x201d;, &#x201c;fiscal 2023&#x201d;, &#x201c;2023&#x201d; or using similar words. Our previous fiscal&#160;year, which ended on January&#160;31, 2022, is referred to as the &#x201c;previous fiscal&#160;year&#x201d;, &#x201c;fiscal 2022&#x201d;, &#x201c;2022&#x201d; or using similar words. Other fiscal&#160;years are referenced by the &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;applicable&#160;year during which the fiscal&#160;year ends. For example, &#x201c;2024&#x201d; refers to the annual period ending January&#160;31, 2024 and the &#x201c;fourth quarter of 2024&#x201d; refers to the quarter ending January&#160;31, 2024.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The significant accounting policies used in preparing these condensed consolidated financial statements are unchanged from those disclosed in the Company&#x2019;s fiscal 2022 annual consolidated financial statements and have been applied consistently to all periods presented in these condensed consolidated financial statements.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Recently issued accounting pronouncements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In October&#160;2021, the FASB issued Accounting Standards Update 2021-08, &#x201c;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers&#x201d; (&#x201c;ASU 2021-08&#x201d;). ASU 2021-08 provides guidance on how to recognize and measure acquired contract assets and liabilities from revenue contracts in a business combination. ASU 2021-08 is effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2022, which will be our fiscal&#160;year beginning February&#160;1, 2023 (fiscal 2024). Early adoption is permitted. The Company will adopt this guidance in the first quarter of fiscal 2024. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;.&lt;/span&gt;&lt;/p&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_qqnAPtefukSgJxgfTZ2lWg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The accompanying unaudited condensed consolidated financial statements are presented in United States (&#x201c;US&#x201d;) dollars and are prepared in accordance with generally accepted accounting principles in the US (&#x201c;GAAP&#x201d;) and the rules&#160;and regulations of the Canadian Securities Administrators and US Securities and Exchange Commission (&#x201c;SEC&#x201d;) for the preparation of condensed interim financial statements. Accordingly, these unaudited condensed consolidated financial statements do not include all of the information and notes required for compliance with GAAP for annual financial statements. These statements should be read in conjunction with our audited annual consolidated financial statements prepared in accordance with GAAP for the fiscal&#160;year ended January&#160;31, 2022.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The unaudited condensed consolidated financial statements reflect all adjustments, which are, in the opinion of management, necessary for a fair presentation of results for the interim periods presented. The preparation of these unaudited condensed consolidated financial statements requires management to make estimates and assumptions that affect the amounts reported in the unaudited condensed consolidated financial statements and the accompanying notes. Actual results could differ from these estimates and the results of operations for the interim period should not be considered indicative of results to be expected for the full&#160;year ending January&#160;31, 2023.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The world continues to experience a global pandemic related to the spread of the COVID-19 virus (the &#x201c;Pandemic&#x201d;).&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; The Pandemic has had disruptive effects in countries in which the Company operates, and the future impacts of the Pandemic and any resulting economic impact are largely unknown and rapidly evolving. As the impacts of the Pandemic continue to evolve, estimates and assumptions about future events and their effects cannot be determined with certainty and therefore require increased judgment. The future impact of Pandemic uncertainties could result in a significant impact on the reported amounts of assets, liabilities, revenue and expenses in these and any future consolidated financial statements. Examples of accounting estimates and judgments that may be impacted by the Pandemic include, but are not limited to; revenue recognition, impairment of goodwill and intangible assets and provisions for credit losses.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Our fiscal&#160;year commences on February&#160;1&lt;/span&gt;&lt;sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt;&lt;span style="font-family:'Verdana';"&gt; of each&#160;year and ends on January&#160;31&lt;/span&gt;&lt;sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;"&gt;st&lt;/sup&gt;&lt;span style="font-family:'Verdana';"&gt; of the following&#160;year. Our fiscal&#160;year, which ends on January&#160;31, 2023, is referred to as the &#x201c;current fiscal&#160;year&#x201d;, &#x201c;fiscal 2023&#x201d;, &#x201c;2023&#x201d; or using similar words. Our previous fiscal&#160;year, which ended on January&#160;31, 2022, is referred to as the &#x201c;previous fiscal&#160;year&#x201d;, &#x201c;fiscal 2022&#x201d;, &#x201c;2022&#x201d; or using similar words. Other fiscal&#160;years are referenced by the &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;applicable&#160;year during which the fiscal&#160;year ends. For example, &#x201c;2024&#x201d; refers to the annual period ending January&#160;31, 2024 and the &#x201c;fourth quarter of 2024&#x201d; refers to the quarter ending January&#160;31, 2024.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The significant accounting policies used in preparing these condensed consolidated financial statements are unchanged from those disclosed in the Company&#x2019;s fiscal 2022 annual consolidated financial statements and have been applied consistently to all periods presented in these condensed consolidated financial statements.&lt;/span&gt;&lt;/p&gt;</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_ukAzahprS026U2pHAJ6w1g">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Recently issued accounting pronouncements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In October&#160;2021, the FASB issued Accounting Standards Update 2021-08, &#x201c;Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers&#x201d; (&#x201c;ASU 2021-08&#x201d;). ASU 2021-08 provides guidance on how to recognize and measure acquired contract assets and liabilities from revenue contracts in a business combination. ASU 2021-08 is effective for annual periods, and interim periods within those annual periods, beginning after December&#160;15, 2022, which will be our fiscal&#160;year beginning February&#160;1, 2023 (fiscal 2024). Early adoption is permitted. The Company will adopt this guidance in the first quarter of fiscal 2024. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;.&lt;/span&gt;&lt;/p&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_LQWUJA6jqUOt0lkmckfE6A">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;3&#160;&#x2013; Acquisitions&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;"&gt;Fiscal 2023 Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On February&#160;9, 2022, Descartes acquired all of the shares of NetCHB, LLC (&#x201c;NetCHB&#x201d;), a provider of customs filing solutions in the US. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$38.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$60.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million based on NetCHB achieving revenue-based targets over the first &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;two&#160;years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; post-acquisition. The fair value of the contingent considerations was valued at &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$13.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the acquisition date. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before February&#160;9, 2023.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On April&#160;21, 2022, Descartes acquired substantially all of the assets of Foxtrot,&#160;Inc. (&#x201c;Foxtrot&#x201d;), a provider of machine learning-based mobile route execution solutions. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$4.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before April&#160;21, 2023.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On June&#160;3, 2022, Descartes acquired all of the shares of XPS Technologies, LLC (&#x201c;XPS&#x201d;), a provider of ecommerce multi-carrier parcel shipping solutions. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$61.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$75.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million based on XPS achieving revenue-based targets over the first &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;two&#160;years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; post-acquisition. The fair value of the contingent considerations was valued at &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$9.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the acquisition date. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before June&#160;3, 2023.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;For the businesses acquired during fiscal 2023, we incurred acquisition-related costs of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for the three and six&#160;month periods ended July&#160;31, 2022, respectively. The acquisition-related costs were primarily for advisory services and are included in other charges in our condensed consolidated statements of operations. During the three and six&#160;month periods ended July&#160;31, 2022, we have recognized revenues of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$4.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$6.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively, and net income of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively, from NetCHB, Foxtrot and XPS since the date of acquisition in our condensed consolidated statements of operations.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;The preliminary purchase price allocation for the businesses acquired during 2023, which have not been finalized, is as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;NetCHB&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Foxtrot&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;XPS&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Purchase price consideration:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash, less cash acquired related to NetCHB (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$658&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;), Foxtrot (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;Nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;) and XPS (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$3,932&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 38,664&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,228&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 61,096&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 103,988&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,948&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,425&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 23,373&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net working capital adjustments payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 51&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 74&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 825&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 950&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52,663&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,302&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 71,346&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 128,311&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Allocated to:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current assets, excluding cash acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 469&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 835&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,228&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,532&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (367)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (14)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,491)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,872)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (336)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,120)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,456)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net tangible assets (liabilities) assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 102&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 485&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,383)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (796)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Finite life intangible assets acquired:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,900&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 650&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 19,650&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,640&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 20,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,740&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 64&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 164&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26,797&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,527&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43,529&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 71,853&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52,663&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,302&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 71,346&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 128,311&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The above transactions were accounted for using the acquisition method in accordance with ASC Topic 805, &#x201c;Business Combinations&#x201d;. The purchase price allocations in the table above represents our estimates of the allocation of the purchase price and the fair value of net assets acquired. The preliminary purchase price allocations may differ from the final purchase price allocation, and these differences may be material. Revisions to the allocations will occur as additional information about the fair value of assets and liabilities becomes available. The final purchase price allocations will be completed within one&#160;year from the acquisition date.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The acquired intangible assets are being amortized over their estimated useful lives as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;NetCHB&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Foxtrot&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;XPS&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;11 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The goodwill on the NetCHB, Foxtrot and XPS acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the NetCHB, Foxtrot and XPS acquisitions are deductible for tax purposes.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;"&gt;Fiscal 2022 Acquisitions&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On February&#160;26, 2021, Descartes acquired all of the shares of VitaDex Solutions, LLC, doing business as QuestaWeb (&#x201c;QuestaWeb&#x201d;), a US-based provider of foreign trade zone and customs compliance solutions. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$35.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million. The purchase price was finalized in the three&#160;month period ended January&#160;31, 2022 with no adjustments.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On May&#160;7, 2021, Descartes acquired all of the shares of Portrix Logistics Software GmbH (&#x201c;Portrix&#x201d;), a provider of multimodal rate management solutions for logistics services providers. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$25.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million (EUR &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;20.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million), net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three&#160;month period ended April&#160;30, 2022 with no adjustments.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On July&#160;8, 2021, Descartes acquired all of the shares of GreenMile, LLC (&#x201c;GreenMile&#x201d;), a provider of cloud-based mobile route execution solutions for food, beverage, and broader distribution verticals. The purchase price for the acquisition was approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$29.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$10.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million in cash is payable if certain revenue performance targets are met by GreenMile in the &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;two&#160;years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; following the acquisition. The fair value of the contingent consideration was valued at &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$3.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the acquisition date. The gross contractual amount of trade receivables acquired was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million with a fair value of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million. The purchase price was finalized in the three&#160;month period ended July&#160;31, 2022 with no adjustments.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;"&gt;Pro Forma Results of Operations (Unaudited)&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired XPS, Foxtrot, NetCHB, GreenMile, Portrix and QuestaWeb as of February&#160;1, 2021.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;This pro forma information is for information purposes only and does not purport to represent what our actual results of operations for the periods presented would have been had the acquisitions of XPS, Foxtrot, NetCHB, GreenMile, Portrix and QuestaWeb occurred at February&#160;1, 2021, or to project our results of operations for any future period.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 124,237&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 113,126&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 245,151&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 222,582&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 22,998&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 24,398&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 46,521&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43,808&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Earnings per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Basic&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.27&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.29&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.55&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.52&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.27&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.28&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.54&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.51&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Cai7QNLiXUWU0eTBBetnkA"
      decimals="-5"
      id="Narr_3n_Is1yavUK0qAVoHibmdg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">38700000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_WWC9hrkdrUCOyGkeDitcJw"
      decimals="-5"
      id="Narr_rAFPYpWbTE6mB7juxJpjLg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">60000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_2_9_2022_To_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_Cai7QNLiXUWU0eTBBetnkA"
      id="Narr_KMA6xkWYpkafmtDg5DLoXA">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_WWC9hrkdrUCOyGkeDitcJw"
      decimals="-5"
      id="Narr_cn6I9hWFjEiafWZiJyH61g"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">13900000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_WWC9hrkdrUCOyGkeDitcJw"
      decimals="-5"
      id="Narr_raBgoI4hg0eFQ-jbCWJQzA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">100000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_WWC9hrkdrUCOyGkeDitcJw"
      decimals="-5"
      id="Narr_5n7uuYH0uEa4MWcD5wqHPQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">100000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_4_21_2022_To_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_vMPO0h0pMEy6O0AHxSKXHA"
      decimals="-5"
      id="Narr_E_UNovmEGUSONKJ8ADqfow"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4200000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CWwsUhWXiUCJ5-FFM7zwFg"
      decimals="-5"
      id="Narr_WgHvdQQ_pEqg-yKieau69Q"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">700000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_4_21_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_CWwsUhWXiUCJ5-FFM7zwFg"
      decimals="-5"
      id="Narr_qg6MpWP27kWYH6QjUygh2w"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">700000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_6_3_2022_To_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_kQNCPTBUTUmJgPwQDwIBjQ"
      decimals="-5"
      id="Narr_5IYfCfL0-ky1PZJTUhQSww"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">61100000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_nx45mrSRGESp-DasdCzZRw"
      decimals="-5"
      id="Narr_uND86ba1YEi1QFm_gZatvw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">75000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_6_3_2022_To_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_kQNCPTBUTUmJgPwQDwIBjQ"
      id="Narr_QtVR6bJjgkiqw-wxuP6TRw">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_nx45mrSRGESp-DasdCzZRw"
      decimals="-5"
      id="Narr_v_rFVcOrmEWyGFWvNhn9Sw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">9400000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_nx45mrSRGESp-DasdCzZRw"
      decimals="-5"
      id="Narr_SX0fEE5cOEisBvRls4nJ7A"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1500000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_6_3_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsTechnologyLlcMember_nx45mrSRGESp-DasdCzZRw"
      decimals="-5"
      id="Narr_m2CuaMBSG02EJG4PrBAc6w"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1500000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_H41q9OpAaEGAqt9H4-r8Dw"
      decimals="-5"
      id="Narr_P3dcyuyoF06eKVnQJnK7Fg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">200000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_MiURUplOH0CtyEhurZAfRw"
      decimals="-5"
      id="Narr_V-3TPobhQkieJP1_TCCuYA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">500000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_H41q9OpAaEGAqt9H4-r8Dw"
      decimals="-5"
      id="Narr_x-5gmTvG3USh3PI00oZotQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4900000</us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual>
    <us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_MiURUplOH0CtyEhurZAfRw"
      decimals="-5"
      id="Narr_ZyWIY7GurUO9hCNybM5ZVg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">6900000</us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual>
    <us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_H41q9OpAaEGAqt9H4-r8Dw"
      decimals="-5"
      id="Narr_p-6HOD2IpEer10EHg1FLFg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">900000</us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual>
    <us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_Fiscal2023AcquisitionsMember_MiURUplOH0CtyEhurZAfRw"
      decimals="-5"
      id="Narr_rd1r1o4DB0S37QLip50a2Q"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1600000</us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual>
    <us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_34GbeC-NYUanMwnHLnrjWg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;NetCHB&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Foxtrot&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;XPS&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Purchase price consideration:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash, less cash acquired related to NetCHB (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$658&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;), Foxtrot (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;Nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;) and XPS (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$3,932&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 38,664&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,228&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 61,096&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 103,988&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,948&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,425&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 23,373&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net working capital adjustments payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 51&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 74&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 825&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 950&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52,663&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,302&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 71,346&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 128,311&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Allocated to:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current assets, excluding cash acquired&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 469&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 835&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,228&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,532&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (367)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (14)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,491)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,872)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (336)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,120)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (2,456)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net tangible assets (liabilities) assumed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 102&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 485&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,383)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (796)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Finite life intangible assets acquired:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,900&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 650&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 19,650&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,640&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 20,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35,740&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 64&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 164&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,000&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Goodwill&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26,797&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,527&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43,529&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 71,853&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:59.65%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 52,663&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,302&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 71,346&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 128,311&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA"
      decimals="-3"
      id="Narr_mr0ScAHDWUGWQH2y9f8etQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">658000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_UjeVWj1jQEaRZOq-I18Tng"
      decimals="-3"
      id="Narr_Mqv9S22PY0-puUGmLNN7iw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">0</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:CashAcquiredFromAcquisition
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw"
      decimals="-3"
      id="Narr_bGUBwllq6EWlOlpAYiZfDg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3932000</us-gaap:CashAcquiredFromAcquisition>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA"
      decimals="-3"
      id="Tc_S6Ok3e71EkqCHJNiAtD5dA_3_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">38664000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_UjeVWj1jQEaRZOq-I18Tng"
      decimals="-3"
      id="Tc_jAsWssorHkycS7hk2P_5XA_3_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4228000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw"
      decimals="-3"
      id="Tc_n1FZ2PQRYkGLbqgc4EW3JQ_3_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">61096000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_UTrmoAH69UeLxZs9aZamjA_3_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">103988000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA"
      decimals="-3"
      id="Tc_LrO-1ZJfAk6MvLpid5GWdw_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">13948000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw"
      decimals="-3"
      id="Tc_YRo2Xz6qyUS-XY0aRM-8fg_4_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">9425000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_nnez1YFTd0yrHQ96ENQZtg_4_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">23373000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA"
      decimals="-3"
      id="Tc_pMuxBxFXqEyWRJaN-3FP3w_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">51000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_UjeVWj1jQEaRZOq-I18Tng"
      decimals="-3"
      id="Tc_oVEX8z0u3kml0pGL2kjEvw_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">74000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw"
      decimals="-3"
      id="Tc__NXVdpmwbkaVwTpAOrwWlw_5_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">825000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_cSOMwrQXP0SpS3mrmIeHfQ_5_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">950000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA"
      decimals="-3"
      id="Tc_p0207oPsZkap78psorFabA_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">52663000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_UjeVWj1jQEaRZOq-I18Tng"
      decimals="-3"
      id="Tc_tlgVv3YI_0-ehnYCxam23g_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4302000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw"
      decimals="-3"
      id="Tc_CJXxg4Apc06LZlX79Ka1Ag_6_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">71346000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_ruJlEKv6TEKuMG6YO_0PMQ_6_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">128311000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_w82LPY6N702UfvJ80lTeaA"
      decimals="-3"
      id="Tc_bdTJ3Y29pkyfEklcS7eTMQ_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">469000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A"
      decimals="-3"
      id="Tc_LgOowq5j_kCqEawgfqDCog_8_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">835000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA"
      decimals="-3"
      id="Tc_7IzFOzCukEiCdpfVRuMsBg_8_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2228000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_GeCQ6KpueECif8JHBuPSRw_8_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3532000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_w82LPY6N702UfvJ80lTeaA"
      decimals="-3"
      id="Tc_sswC0YwlJEOy6RtQLUv15A_9_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">367000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A"
      decimals="-3"
      id="Tc_xNb-H-oyXkCetwoAyMQYew_9_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">14000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA"
      decimals="-3"
      id="Tc_JoJ_HM7JC02djbHQbzFAuw_9_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1491000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_mo7yGlIlqkOId473cKRUig_9_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1872000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A"
      decimals="-3"
      id="Tc_3sgYZUvVXUqj1Ehrp3hpAw_10_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">336000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA"
      decimals="-3"
      id="Tc_iEKbK1ubAUCE7bZwmO3BCg_10_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2120000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_3EqzGvZu0U6bBFksQAuTYQ_10_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2456000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_w82LPY6N702UfvJ80lTeaA"
      decimals="-3"
      id="Tc_E5h9tL9XPkamE1wyTE_7GA_11_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-102000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A"
      decimals="-3"
      id="Tc_yFUhi2Kyy0icVU1vuCoz3w_11_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-485000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA"
      decimals="-3"
      id="Tc_z2WwQvZmCUCuMy7WiL-L9g_11_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1383000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_pKNTewB7-EGvvLZZOntlVA_11_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">796000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_W_bJFM3kM02MWq6T9JBYYQ"
      decimals="-3"
      id="Tc_s6i25WI7oUSZl-PK8uYLJA_14_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10900000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_XSJ4VRiEDEOcbBrxySGr3g"
      decimals="-3"
      id="Tc_39TE5s5q5UeFxfQJdP_a8w_14_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">650000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_7RMJZqFlMkGsAfeqqsS9Kg"
      decimals="-3"
      id="Tc_6oUrxOf9F0SWqjeMaM52oA_14_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">8100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_NhHWTTjKWUKaIx47t07K3w"
      decimals="-3"
      id="Tc_kLcSQE8gNUyObTpSxfX7jA_14_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">19650000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_a8z5KL7um0mywjtvjlv5UA"
      decimals="-3"
      id="Tc_Z19fDYppokOZp_53ceww7Q_15_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">14100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_61U7MU3Ta0OC1vAXNFhSNA"
      decimals="-3"
      id="Tc_IR-VIOhLYEqjk_AlpbxmqQ_15_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1640000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_oGYvyNzWREuBRs8ipLm-fA"
      decimals="-3"
      id="Tc_FyAfLFzn3kWwP7VpPJhH2g_15_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">20000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_ZirpZTUoA0KXFGT5Q7rnow"
      decimals="-3"
      id="Tc_AjNy8WyVuE6UtsooPLkMDw_15_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">35740000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_DYR0hRlfQE--mDBFjeHcEg"
      decimals="-3"
      id="Tc_lggEANfczUWfXyzCKE5KBA_16_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">64000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_pbr03QPzQUatoSPb1zHP2A"
      decimals="-3"
      id="Tc_sYNJnwxgy0SJkb7JDintzw_16_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ycKV5WOoakO_m-juiyY7bA"
      decimals="-3"
      id="Tc_CXDWkuTLZU2Y8tLTGwgaGQ_16_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">164000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_mqocVqaz_UeI7Mpi3mlvug"
      decimals="-3"
      id="Tc_bkiFJGLgfEebRc5qAH_uUw_17_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">700000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_NH4dmPCXqkyt43LKd_9yUQ"
      decimals="-3"
      id="Tc_a3JgsARRfkeSjPMP3gqeUQ_17_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_pCNbRm9qUkqGGcbmxYAUpw"
      decimals="-3"
      id="Tc_Avzdym-fR0aAVwBcfxzcbQ_17_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1700000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_w82LPY6N702UfvJ80lTeaA"
      decimals="-3"
      id="Tc_HtsCyspVYE2llJ87WL1N9g_18_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">26797000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A"
      decimals="-3"
      id="Tc_UxzZJE7y8E-S5pR9wTw4hg_18_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1527000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA"
      decimals="-3"
      id="Tc_EguXTZ95TkiRgaCi-fBvKQ_18_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">43529000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_clmCFhre-k6S79GG8Y0b2g_18_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">71853000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_w82LPY6N702UfvJ80lTeaA"
      decimals="-3"
      id="Tc_AYQ9YykxF0iEPXIWmysK7g_19_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">52663000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_ht028zCXHke-dyYry5Cu3A"
      decimals="-3"
      id="Tc_N9xcfCWYzkiYChc9iwUzMQ_19_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4302000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_J3IZSZqaJkSArwkDE5fzzA"
      decimals="-3"
      id="Tc_4ZiEsUaFUEyeNs3S0R5UmA_19_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">71346000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_9cGUHwDXZ0GuZn8BdwS5GA_19_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">128311000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_YTRK12OrEUKqeQp56S95MA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;NetCHB&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Foxtrot&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;XPS&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;13 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;11 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;6 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;5 years&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_cT23BQJCOEuG3s0rXxDfhA"
      id="Tc_nkdy4KuVuUCVVQ9MEVIY9w_2_2">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_dkGvOwj5QE2c4_DnhYbhAQ"
      id="Tc_RG1XOEKfLECLDtMWl4aZeg_2_4">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_D0SXk_MvtEiXuLwcU3UvhA"
      id="Tc_AUv0rLBkdUa__lhvbB53Cg_2_6">P11Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_4Lprca85P0G6A5DuBrABKg"
      id="Tc_8TpulZxoqkOhEWETzoGzYg_3_2">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_tKsR3oiPt0qKSYCzx4QzFg"
      id="Tc_x5XBRVzXC0yfRKLekrhsBA_3_4">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_dsgx_ExistingTechnologyMember_ivbz6pEjTkW4wgJUuIQz_g"
      id="Tc_yEuuHpqWzUOzaHT-wl_SlA_3_6">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_-b8w6z08Lk6uPxuISf1UjA"
      id="Tc_wm1WcKADTUq6C8fj_poLlg_4_2">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_XDYsvV5MHkKRYDAH2lTCeA"
      id="Tc_KQN70J2Y2UuXFsU1SyRyCQ_4_6">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_n3NzygIUW0Gjb1bXqN7Z-Q"
      id="Tc_NDhm2nxLOkahJs5Q9Tqm-A_5_2">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_Sn34rR_Epk6mFWBsDLq3SQ"
      id="Tc_xMCB_EJ_WESqJRveGY6wyQ_5_6">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_2_26_2021_To_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_x__u-pV_nEq-QJ3t-xKcyg"
      decimals="-5"
      id="Narr_xzfQR-dHXk2CIm2zQezqzw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">35900000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_TcPMxsqhxk27UTsx_qIYuA"
      decimals="-5"
      id="Narr_yjdqbIku0E-6Q6Y7eDiQag"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">600000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_TcPMxsqhxk27UTsx_qIYuA"
      decimals="-5"
      id="Narr_ydKfO7d7Q0Oug860BO68Zg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">500000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible
      contextRef="As_Of_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_TcPMxsqhxk27UTsx_qIYuA"
      decimals="-5"
      id="Narr_0EqVJQM7z0SfHG3sIcWzlw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">100000</us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_5_7_2021_To_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_xCNnbTGwLU-vcaIGLLrvGA"
      decimals="-5"
      id="Narr_k3O3-PjG5kSnrJ_QIpAYyw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">25200000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_5_7_2021_To_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_xCNnbTGwLU-vcaIGLLrvGA"
      decimals="-5"
      id="Narr_wnNEcMSibE-NqfzMYiLpJg"
      unitRef="Unit_Standard_EUR_Zg9NuFmbbkqFLhsENpy6DA">20700000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_LN8FgHU-9UKvbyLQ1r6s7w"
      decimals="-5"
      id="Narr_cAo-JQTYrkywPDnjJxMjpA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">700000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_5_7_2021_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_LN8FgHU-9UKvbyLQ1r6s7w"
      decimals="-5"
      id="Narr_BUZGZlHH0U25p2VT_20CWQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">700000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="Duration_7_8_2021_To_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_Cc-cEfJriUuQE967stYLJA"
      decimals="-5"
      id="Narr_2FEOTVQLfUiM8tkLXIPh0Q"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">29200000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_bvImWuAHoUmZ6rgOA5DqxA"
      decimals="-5"
      id="Narr_go_DVl0PeUabjOwIZ-cH0w"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10000000.0</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_7_8_2021_To_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_Cc-cEfJriUuQE967stYLJA"
      id="Narr_w5wI5CziyUu46e5CEi8UQw">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_bvImWuAHoUmZ6rgOA5DqxA"
      decimals="-5"
      id="Narr_9miXG2Nvtkm9cmGXf1Pu6w"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3300000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount
      contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_bvImWuAHoUmZ6rgOA5DqxA"
      decimals="-5"
      id="Narr_Rz384nW3T02wtmNDFgub6A"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1100000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
    <us-gaap:BusinessCombinationAcquiredReceivablesFairValue
      contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_bvImWuAHoUmZ6rgOA5DqxA"
      decimals="-5"
      id="Narr_ftOq_ClSbkWHGO-cbUMaMA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1000000.0</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
    <us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible
      contextRef="As_Of_7_8_2021_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_bvImWuAHoUmZ6rgOA5DqxA"
      decimals="-5"
      id="Narr_FvAeAxy3HkWJ3-b4XZ3dzQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">100000</us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible>
    <us-gaap:BusinessAcquisitionProFormaInformationTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_gHXEapVPRE6K6cXDAwfljA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 124,237&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 113,126&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 245,151&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 222,582&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 22,998&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 24,398&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 46,521&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43,808&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Earnings per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Basic&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.27&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.29&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.55&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.52&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.27&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.28&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.54&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.51&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:BusinessAcquisitionProFormaInformationTextBlock>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_qxZyIPtYzkuo1rRUSVtl7w_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">124237000</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_3bTANxkblUONx49PO5zeXA_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">113126000</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_AOOdGACFF0agJjWPGPOxYg_5_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">245151000</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_cd7QQXgvuEqBilNv8fEflQ_5_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">222582000</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_aOLZ4gLGakqKAw_R4I8wDQ_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">22998000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_kGbBZOgjZ06qaCjqABEWbQ_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">24398000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_PFmOedobIkWDJ7GgXnlwWA_6_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">46521000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_7Cy428REi0iqOmY5VxZnig_6_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">43808000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="2"
      id="Tc_TUB8F6t0AkGlw3XhyH6TwA_8_2"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.27</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="2"
      id="Tc_35qUkMgRf0eRG9kpRFNfNg_8_4"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.29</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="2"
      id="Tc__vQwqpOLBUqn84gMluTFjg_8_6"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.55</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="2"
      id="Tc_Gj_HPesvJUK_igrdhiZotA_8_8"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.52</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="2"
      id="Tc_V1TaQje5IESm4JBdyshV0Q_9_2"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.27</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="2"
      id="Tc_b0wwQ4_ATEap7d42IDXiSw_9_4"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.28</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="2"
      id="Tc_K7CknjD9hkm_Bqn52kFcHg_9_6"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.54</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
    <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="2"
      id="Tc_PfB9DkCVEUKkq533TVqWcw_9_8"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.51</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_FHhZYmFiZEiYcJmCxWm-hQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;4&#160;&#x2013; Fair Value Measurements&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;ASC Topic 820 &#x201c;Fair Value Measurements and Disclosures&#x201d; (Topic 820) defines fair value as the price that would be received upon sale of an asset or paid upon transfer of a liability in an orderly transaction between market participants at the measurement date and in the principal or most advantageous market for that asset or liability. The fair value, in this context, should be calculated based on assumptions that market participants would use in pricing the asset or liability, not on assumptions specific to the entity. In addition, &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;the fair value of liabilities should include consideration of non-performance risk, including our own credit risk.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Topic 820 establishes a fair value hierarchy which prioritizes the inputs used in the valuation methodologies in measuring fair value into three levels:&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"&gt;&lt;tr&gt;&lt;td style="width:18pt;"/&gt;&lt;td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"&gt;&#x25cf;&lt;/td&gt;&lt;td style="padding:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;Level 1&#x2014;inputs are based upon unadjusted quoted prices for identical instruments traded in active markets.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"&gt;&lt;tr&gt;&lt;td style="width:18pt;"/&gt;&lt;td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"&gt;&#x25cf;&lt;/td&gt;&lt;td style="padding:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;Level 2&#x2014;inputs are based upon quoted prices for similar instruments in active markets, quoted prices for identical or similar instruments in markets that are not active, and model-based valuation techniques for which all significant assumptions are observable in the market or can be corroborated by observable market data for substantially the full term of the assets or liabilities.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"&gt;&lt;tr&gt;&lt;td style="width:18pt;"/&gt;&lt;td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"&gt;&#x25cf;&lt;/td&gt;&lt;td style="padding:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;"&gt;Level 3&#x2014;inputs are generally unobservable and typically reflect management&#x2019;s estimates of assumptions that market participants would use in pricing the asset or liability. The fair values are therefore determined using model-based techniques that include option pricing models, discounted cash flow models, and similar techniques.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="margin-top:12pt;"/&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The carrying amounts of the Company&#x2019;s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value (a Level 2 measurement) due to their short maturities.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table shows the Company&#x2019;s financial instruments measured at fair value on a recurring basis as of July&#160;31, 2022:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Assets:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equity derivative contracts&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 10,237&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 10,237&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Liabilities:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 27,579&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 27,579&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table shows the Company&#x2019;s financial instruments measured at fair value on a recurring basis as of January&#160;31, 2022:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Level&#160;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Level&#160;2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Level&#160;3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Assets:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equity derivative contracts&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,863&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,863&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Liabilities:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,990&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,990&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The Company enters into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain future share-based compensation expenses. The equity derivative contracts are not designated as hedge instruments and the Company does not hold derivatives for speculative purposes. As at July&#160;31, 2022, we had equity derivatives for &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;281,768&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; Descartes common shares with a weighted average purchase price of $&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;32.79&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The fair value of equity contract derivatives is &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;determined utilizing a valuation model&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; based on the quoted market value of our common shares at the balance sheet date (Level 2 fair value inputs). The fair value of equity contract derivatives is recorded as other current assets and gains and losses are recorded in general and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;administrative expenses in the condensed consolidated financial statements. During the three and six&#160;months ended July&#160;31, 2022, we recognized an expense (recovery) in general and administrative expenses of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;($1.9)&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively, compared to an expense (recovery) of $&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;(2.4)&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;($2.5)&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for the same periods of fiscal 2022, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table presents the changes in the fair value measurements of contingent consideration in Level 3 of the fair value hierarchy:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,990&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increase from acquisitions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 23,373&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (10,517)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Charges through profit or loss&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,833&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (100)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 27,579&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Estimates of the fair value of contingent consideration is performed by the Company on a quarterly basis. Key unobservable inputs include &lt;/span&gt;&lt;span style="-sec-ix-hidden:Hidden_pSZxK8rp70Ke_RaEGReiMQ;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;revenue&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; &lt;/span&gt;&lt;span style="-sec-ix-hidden:Hidden_EhMWg6eEBEe5DICOqp8ajg;"&gt;&lt;span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;"&gt;growth&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; rates and the discount rates applied (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;10%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;13%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;). The estimated fair value increases as the annual revenue growth rate increases and as the discount rate decreases and vice versa.&lt;/span&gt;&lt;/p&gt;</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_Vgia0W-m5keqr8LywkAGCQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Total&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Assets:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equity derivative contracts&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 10,237&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 10,237&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.48%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Liabilities:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.48%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:7.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 27,579&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 27,579&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table shows the Company&#x2019;s financial instruments measured at fair value on a recurring basis as of January&#160;31, 2022:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Level&#160;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Level&#160;2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Level&#160;3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Assets:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equity derivative contracts&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,863&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,863&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Liabilities:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,990&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,990&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock>
    <us-gaap:DerivativeAssets
      contextRef="As_Of_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_4xnsem-OsUqUypo1njoeTw"
      decimals="-3"
      id="Tc_exYURCAg_0SR6Nxv9zijsA_3_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10237000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_wn4BZWnYc0WOGT2s-l9N_g_3_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10237000</us-gaap:DerivativeAssets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_7G3pbM-DYEWiXhPpixkIgQ"
      decimals="-3"
      id="Tc_kyTGbUdCXUi3oFkUYpV8Tg_6_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">27579000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_7RSHoMXnZkixjgA6rF1pSg_6_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">27579000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:DerivativeAssets
      contextRef="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel2Member_BIipgXZVjUe-1xxh7CEkbA"
      decimals="-3"
      id="Tc_jMB2gSIl4UGia-AhZ0U0Bw_3_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10863000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_yV7g_FK9hUuMjkLqFJoTOw_3_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10863000</us-gaap:DerivativeAssets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pFzojNMomkGqcY8qpc5UZg"
      decimals="-3"
      id="Tc_3YflqMdLiESgQXH35MXj3w_6_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">12990000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_vdlvh2l0Dkyoqtplp_nbDg_6_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">12990000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <dsgx:DerivativeInstrumentSharesOfCommonStockHeld
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="INF"
      id="Narr_XRcmcdgsQE66Yef7qlVTjw"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">281768</dsgx:DerivativeInstrumentSharesOfCommonStockHeld>
    <dsgx:DerivativeInstrumentCommonSharesHeldPerShare
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="2"
      id="Narr_ME4q5cqyz0G47kkTBMGZDQ"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">32.79</dsgx:DerivativeInstrumentCommonSharesHeldPerShare>
    <dsgx:ExpensesAndRecoveriesNet
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_u8Eak7lD3EC3U2Nh5WI3gw"
      decimals="-5"
      id="Narr_oP-GvJ5y_UyIwpQ0tJ2doQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-1900000</dsgx:ExpensesAndRecoveriesNet>
    <dsgx:ExpensesAndRecoveriesNet
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_YliF3vhnP0iE11BzFydcBg"
      decimals="-5"
      id="Narr_BqvamalDcESqK2287KceEQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">600000</dsgx:ExpensesAndRecoveriesNet>
    <dsgx:ExpensesAndRecoveriesNet
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_QjMMSpUPzUarN6J1mlT5hA"
      decimals="-5"
      id="Narr_4mtZzEQD90-ovuJsktJ7oA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-2400000</dsgx:ExpensesAndRecoveriesNet>
    <dsgx:ExpensesAndRecoveriesNet
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_EbAIlI12WUa-adjEMKumIQ"
      decimals="-5"
      id="Narr_Dj2JapmRHUq4D49baahaZg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-2500000</dsgx:ExpensesAndRecoveriesNet>
    <us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_RbNE-yQlN0SgV88sc_n1og">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Level&#160;3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,990&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increase from acquisitions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 23,373&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (10,517)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Charges through profit or loss&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,833&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (100)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 27,579&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pFzojNMomkGqcY8qpc5UZg"
      decimals="-3"
      id="Tc_2eJOXAkj_k22uYiTQIkpaA_2_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">12990000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_75Y7Xv7uqkWercYgCqOHjw"
      decimals="-3"
      id="Tc_OnY40_ragkCMvNo9gja_vw_3_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">23373000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_75Y7Xv7uqkWercYgCqOHjw"
      decimals="-3"
      id="Tc_4v6Omx4DJEeGIXBGWWBKpQ_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-10517000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_75Y7Xv7uqkWercYgCqOHjw"
      decimals="-3"
      id="Tc_tL7IeMx8KESztZdNEHHfoA_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1833000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings>
    <dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_75Y7Xv7uqkWercYgCqOHjw"
      decimals="-3"
      id="Tc_SPVrlmTy00SKW5lPUaLJ9Q_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-100000</dsgx:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="As_Of_7_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_7G3pbM-DYEWiXhPpixkIgQ"
      decimals="-3"
      id="Tc_LdxWTFzatU6sJ38drLzH4g_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">27579000</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput
      contextRef="As_Of_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_CO6nEWWreUOXktlWlKnuDA"
      decimals="0"
      id="Narr_E3ffTsYbTk6ekWzx_kFQxw"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">10</us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput
      contextRef="As_Of_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_MeasurementInputTypeAxis_us-gaap_MeasurementInputDiscountRateMember_ix7icJ5ImUq54HrratjVaQ"
      decimals="0"
      id="Narr_1OvgUJky1EKM8Xajk9_9-g"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">13</us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput>
    <us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_OXdJJIHw70K1jpqSbotXMQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;5&#160;&#x2013; Trade Accounts Receivable&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 50,869&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43,565&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Less: Provision for credit losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,956)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,860)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48,913&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 41,705&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Included in accounts receivable are unbilled receivables in the amount of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million as at July&#160;31, 2022 (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million as at January&#160;31, 2022). &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;No single customer accounted for more than &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;10%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; of the accounts receivable balance as of July&#160;31, 2022 and January&#160;31, 2022.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table presents the changes in the provision for credit losses as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Provision&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;for&#160;Credit&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Losses&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,860&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current period provision for expected losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 232&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Write-offs charged against the provision&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (114)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (22)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,956&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_FwYkvkJ3eUiEVe_iIxNGdg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 50,869&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43,565&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Less: Provision for credit losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,956)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (1,860)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 48,913&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 41,705&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_pLw3Y49R20emnhVzx47VgQ_3_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">50869000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AccountsReceivableGrossCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_kcmMoiBaQk-Tt47CZoVfaw_3_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">43565000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_nvM2t2m-3k-UwLi6qaGfCg_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1956000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_lC_7BVBankqLMhkvY8HwSQ_4_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1860000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_SG9MpYtldEecI04eh2_WOQ_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">48913000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_jeRA0F_GKkm2WMYpOt5z2g_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">41705000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Narr_jtq_cb6b9EqCOB_dTiBgoQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">900000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-5"
      id="Narr_YW_8OoTLvEe_J58N2DBObQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">500000</us-gaap:UnbilledReceivablesCurrent>
    <dsgx:PercentageOfAccountReceivable
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="2"
      id="Narr_SN12QuN_kEWPtA5kEx_NMw"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.10</dsgx:PercentageOfAccountReceivable>
    <dsgx:PercentageOfAccountReceivable
      contextRef="Duration_2_1_2021_To_1_31_2022_6FniHWIdoEaqbZuSVaSgbA"
      decimals="2"
      id="Narr_yP3OiAUJpk2jkaROcjNoJQ"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.10</dsgx:PercentageOfAccountReceivable>
    <us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_9-a1fDx4IkGLb8zma8ERLQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Provision&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;for&#160;Credit&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Losses&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,860&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current period provision for expected losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 232&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Write-offs charged against the provision&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (114)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (22)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,956&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_fNSH3Jn2VES64TcmQqIHkA_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1860000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_zPLeVbUHTUalWwpqUvMPrA_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">232000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_rb-tNeObLk2OtQq7TPZk3g_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">114000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_Sq2FyEAn5UygyB5d7T_a3w_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-22000</dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_Y6sga1qpfkGKX_mpGrNUng_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1956000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <dsgx:OtherReceivablesTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_soSK4k_Onk62-fHP5tTKYQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;6&#160;&#x2013; Other Receivables&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net working capital adjustments receivable from acquisitions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 74&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 309&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other receivables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 11,346&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,766&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 11,420&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,075&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At July&#160;31, 2022, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million as at January&#160;31, 2022) of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.&lt;/span&gt;&lt;/p&gt;</dsgx:OtherReceivablesTextBlock>
    <dsgx:OtherReceivablesTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_eRh9rQEShUWtYKLWQuHosQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net working capital adjustments receivable from acquisitions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 74&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 309&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other receivables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 11,346&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 13,766&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 11,420&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 14,075&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</dsgx:OtherReceivablesTableTextBlock>
    <dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_iYPs_sqvf0W10yFykEmKFQ_3_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">74000</dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions>
    <dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_IkZ861cOHEi2fmmL-3ac-A_3_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">309000</dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions>
    <us-gaap:OtherAssetsCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_8tV5e0rwIkuIL6eFTHKlDA_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">11346000</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc__S1aQ2IAtkSITKygqaTmHg_4_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">13766000</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_JYP5t9UCZkCfUkA6e_AjTg_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">11420000</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_2FHn-aP53Uq0GLW0ukvUCA_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">14075000</us-gaap:OtherReceivablesNetCurrent>
    <dsgx:AmountsRecoverableFromFundsHeldInEscrow
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Narr_hqhR3anyQEe8XOKrQt-Mrg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">100000</dsgx:AmountsRecoverableFromFundsHeldInEscrow>
    <dsgx:AmountsRecoverableFromFundsHeldInEscrow
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-5"
      id="Narr_7to0rz-JtEavTas4gUTgNg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">300000</dsgx:AmountsRecoverableFromFundsHeldInEscrow>
    <us-gaap:InventoryDisclosureTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_LGFZm_pSUU-bllrjt9GlEA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;7&#160;&#x2013; Inventory&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;At July&#160;31, 2022 and January&#160;31, 2022, inventory is entirely comprised of finished goods inventory. Finished goods inventory primarily consists of hardware and related parts for mobile asset units held for sale. For both the three and six&#160;month periods ended July&#160;31, 2022, the provision for excess or obsolete inventories recorded in cost of revenues was nominal, compared to nominal &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;during the same periods of fiscal 2022.&lt;/span&gt;&lt;/p&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_hBnQkf_7x0C-InEHLBVQ-w">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;8&#160;&#x2013; Property and Equipment&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Computer equipment and software&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 42,553&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 40,937&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Furniture and fixtures&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,629&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,553&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Leasehold improvements&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 822&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equipment installed with customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,680&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Assets under construction&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 469&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 524&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 47,355&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 45,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accumulated depreciation&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Computer equipment and software&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 32,620&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 31,660&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Furniture and fixtures&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,321&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,257&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Leasehold improvements&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 591&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 531&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equipment installed with customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,423&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,206&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 35,955&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 34,654&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 11,400&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,817&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_3bT7PKZk40-nG4QYSGRFXA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Computer equipment and software&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 42,553&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 40,937&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Furniture and fixtures&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,629&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,553&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Leasehold improvements&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,024&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 822&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equipment installed with customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,680&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Assets under construction&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 469&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 524&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 47,355&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 45,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accumulated depreciation&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Computer equipment and software&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 32,620&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 31,660&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Furniture and fixtures&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,321&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,257&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Leasehold improvements&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 591&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 531&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Equipment installed with customers&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,423&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,206&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 35,955&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 34,654&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 11,400&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 10,817&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_2ZoOWAmAlUqc8VUYvo8jnQ"
      decimals="-3"
      id="Tc_JA2R8LwNME--ipzPp-8EiA_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">42553000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_38NjDFI5L0-3FlVS6nvthg"
      decimals="-3"
      id="Tc_u-MDzC16V0evUJijqTZobA_4_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">40937000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_8fDNx1qKbUiop-sR30AUtw"
      decimals="-3"
      id="Tc_DtLFYY7m_U-ebjSKKECm1w_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1629000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_mecr5EZecEGonKzTLPMcuA"
      decimals="-3"
      id="Tc_YFDvA2HA0E-E97cCS3pPcg_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1553000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_9d2A1tfQ0U-jNDnpaKT2ug"
      decimals="-3"
      id="Tc_tAhgZ-SGokWsM-Tje4R0HA_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1024000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_10wEBbhXE0i7e7F3PRaiXA"
      decimals="-3"
      id="Tc_A6Xm3dTIHUSVcTg2mpo67Q_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">822000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_rvEMMoDC00y6VOD4Xt6k7w"
      decimals="-3"
      id="Tc_t7yrAFreAUOnpO68NHpE3Q_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1680000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_VRN0h6rvbkKRitpp1RHZ0w"
      decimals="-3"
      id="Tc_aksjJNMiHUu4GORb24pekg_7_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1635000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_8O7PftPd6kKdVOK7zscclQ"
      decimals="-3"
      id="Tc_LfPH9H9vVk-m_dnWvp0xoA_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">469000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_AssetUnderConstructionMember_zMPNAff-PUSrXTaEHWbdVA"
      decimals="-3"
      id="Tc_cVFRqcYCO0WRz5ACp_VOjw_8_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">524000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_CqK3JlK4yEyKql8cRVhFIw_9_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">47355000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_zHX6pDSrpEGZrCH4f9vukQ_9_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">45471000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_2ZoOWAmAlUqc8VUYvo8jnQ"
      decimals="-3"
      id="Tc_l7WFpwh4fkWEXslGgWdsrg_11_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">32620000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_38NjDFI5L0-3FlVS6nvthg"
      decimals="-3"
      id="Tc_VWROqx3R5EGnR5I23aevhA_11_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">31660000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_8fDNx1qKbUiop-sR30AUtw"
      decimals="-3"
      id="Tc_q2BXs7tAcEqF6S1sk6ZGag_12_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1321000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_FurnitureAndFixturesMember_mecr5EZecEGonKzTLPMcuA"
      decimals="-3"
      id="Tc_NjvCD3JLb0meFVUcchyDlQ_12_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1257000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_9d2A1tfQ0U-jNDnpaKT2ug"
      decimals="-3"
      id="Tc_OYWhY8z7KEeJhHWRe4-IlA_13_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">591000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_LeaseholdImprovementsMember_10wEBbhXE0i7e7F3PRaiXA"
      decimals="-3"
      id="Tc_YxennAHNIESLi71aTsTLxA_13_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">531000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_7_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_rvEMMoDC00y6VOD4Xt6k7w"
      decimals="-3"
      id="Tc_HRzb7qL63UaEdz0Bqdl56Q_14_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1423000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dsgx_EquipmentInstalledWithCustomersMember_VRN0h6rvbkKRitpp1RHZ0w"
      decimals="-3"
      id="Tc_LvFsvTC8iE6EO5gD0S3vlw_14_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1206000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_o8aN_OvnA0WOkRVVrbmWLg_15_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">35955000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_ntjhf1Pt_U-9N7sfyTXNkg_15_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">34654000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_lk8WVgFaRkqN-OiVwc05LQ_16_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">11400000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_ARdUZp1K1Um1trhIVQpw7g_16_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10817000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:IntangibleAssetsDisclosureTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_6f54tuCvhkiM2nxvDagGoA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;9&#160;- Intangible Assets&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 266,481&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 251,402&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 355,275&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 326,411&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,990&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,038&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 13,791&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,306&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 644,537&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 599,157&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accumulated amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 141,408&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 135,380&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 234,197&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 218,953&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 6,894&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 6,677&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 9,473&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,538&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 391,972&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 369,548&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 252,565&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 229,609&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. The change in intangible assets during the six&#160;month period ended July&#160;31, 2022 is primarily due to the acquisitions of NetCHB, Foxtrot and XPS offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Intangible assets with a finite life are amortized into income over their useful lives. Amortization expense for existing intangible assets is expected to be &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$252.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million over the following periods: &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$29.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for the remainder of 2023, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$48.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for 2024, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$45.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for 2025, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$41.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for 2026, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$26.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million &lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;for 2027 and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$60.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes no future adjustments to acquired intangible assets.&lt;/span&gt;&lt;/p&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_ScpyD_GBVkCu9UxDSu99cA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 266,481&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 251,402&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 355,275&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 326,411&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,990&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,038&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 13,791&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,306&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 644,537&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 599,157&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accumulated amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Customer agreements and relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 141,408&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 135,380&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Existing technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 234,197&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 218,953&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade names&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 6,894&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 6,677&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-compete covenants&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 9,473&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,538&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 391,972&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 369,548&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 252,565&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 229,609&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_NhHWTTjKWUKaIx47t07K3w"
      decimals="-3"
      id="Tc_Y1tRson3P0OaJ1D5E_ENGQ_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">266481000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_uHyoEcUDJEKU4bbPWWLGug"
      decimals="-3"
      id="Tc_007f_EuDqkCV6OGZu6W_mQ_4_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">251402000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember__c_0Fqe_eUSGiDS4dt4L4w"
      decimals="-3"
      id="Tc_VZrREf5bEUmQyZ4m8miDgA_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">355275000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_YwRWhpjCfkqbXp9akDu8IA"
      decimals="-3"
      id="Tc_nX3IoK43YUS6ujAKehOUxA_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">326411000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ycKV5WOoakO_m-juiyY7bA"
      decimals="-3"
      id="Tc_a_j3ofZwGkiAFKwCReu-6Q_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">8990000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_YDlDaiWMIU6cSFtE7NDx3A"
      decimals="-3"
      id="Tc_lU5MIBRiLEmqN0zqFhaqKA_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">9038000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_pCNbRm9qUkqGGcbmxYAUpw"
      decimals="-3"
      id="Tc_vsAzChJrXU2mjqsly1o-0Q_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">13791000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_3O2Xh6XHKkmwdO2etZWiPw"
      decimals="-3"
      id="Tc_wGurP0FhNkqK5BeXGeBfrA_7_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">12306000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_SghGtkCswUePBVyTgVbDpg_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">644537000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_GC_TD4TCkk2hNdbguQNy1A_8_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">599157000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_NhHWTTjKWUKaIx47t07K3w"
      decimals="-3"
      id="Tc_4n8I4zT0qEWi8E_IXhMy2A_10_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">141408000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_uHyoEcUDJEKU4bbPWWLGug"
      decimals="-3"
      id="Tc_xYDt5IdGW0qbT7k24tmPoA_10_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">135380000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember__c_0Fqe_eUSGiDS4dt4L4w"
      decimals="-3"
      id="Tc_KWmk_y6IGEG0-oeiYR7BYQ_11_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">234197000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_YwRWhpjCfkqbXp9akDu8IA"
      decimals="-3"
      id="Tc_qLq3AHAdCEq5x1MHJu-GbQ_11_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">218953000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_ycKV5WOoakO_m-juiyY7bA"
      decimals="-3"
      id="Tc_0iWtnuvzSEKUMePNvkjR6Q_12_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">6894000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_TradeNamesMember_YDlDaiWMIU6cSFtE7NDx3A"
      decimals="-3"
      id="Tc_LqZSZSNz-Euqxa3sD75axw_12_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">6677000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_7_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_pCNbRm9qUkqGGcbmxYAUpw"
      decimals="-3"
      id="Tc_OEOf02ba8U2LLK_diLfsOw_13_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">9473000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2022_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_NoncompeteAgreementsMember_3O2Xh6XHKkmwdO2etZWiPw"
      decimals="-3"
      id="Tc_yqlhYFtGekacPb3wMqh1HA_13_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">8538000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_Vi99N48KtEaE4rV9CWtIwg_14_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">391972000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_5VL2q_-xsEWFLu9yWTpVsQ_14_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">369548000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_---evFV1H0Sh3_muXa_MtA_15_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">252565000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_aOVJ4jKRT0Cxzj8LCHhmYQ_15_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">229609000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Narr_WvehG53bFUWZrS73YDDckA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">252600000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Narr_-X-uE67AiU6i0t5-p9yDBg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">29500000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Narr_XlGyWuY84E-4U-QR5WAi7w"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">48900000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Narr_9JRenTa5OEmZChN-e_RcYA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">45800000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Narr_-ASQejpFZ0S1VwEuH-SN7g"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">41500000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Narr_Ev1dj2vj002CuJIgC4Ewmg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">26900000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <dsgx:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Narr_ODGEZpm-OUymwfYJw7RTpg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">60000000.0</dsgx:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour>
    <us-gaap:GoodwillDisclosureTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_sQZBP4YF9EmrhuXws32Q6g">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;10&#160;&#x2013; Goodwill&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Goodwill is recorded when the consideration paid for an acquisition of a business exceeds the fair value of identifiable net tangible and intangible assets acquired. The following table summarizes the changes in goodwill since January&#160;31, 2021:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at beginning of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 608,761&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 565,177&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of QuestaWeb&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 21,691&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of Portrix&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 15,032&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of GreenMile&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,968&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of NetCHB&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26,797&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of Foxtrot&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,527&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of XPS&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 43,529&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Adjustments on account of foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (8,812)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (6,107)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at end of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 671,802&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 608,761&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:GoodwillDisclosureTextBlock>
    <us-gaap:ScheduleOfGoodwillTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_mg_UAdOUW02O8m8ZQx9R9g">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at beginning of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 608,761&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 565,177&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of QuestaWeb&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 21,691&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of Portrix&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 15,032&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of GreenMile&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 12,968&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of NetCHB&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26,797&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of Foxtrot&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,527&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition of XPS&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 43,529&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Adjustments on account of foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (8,812)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (6,107)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at end of period&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 671,802&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 608,761&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_9F4Js57FOE62QM0_sFJGfw_3_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">608761000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2021__kQXoKs9nka2lPH4vSYNEQ"
      decimals="-3"
      id="Tc_PITHxChAaEGz_zF4ufctAg_3_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">565177000</us-gaap:Goodwill>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_L6Q5tEToZUWhso0DTYFOZg"
      decimals="-3"
      id="Tc_glrRt2wruUyxWnFan6qbbg_4_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">21691000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_PortrixMember_h_C-Kly-a0ucy4VaYbFs6Q"
      decimals="-3"
      id="Tc_Ogfo0Pa4WE2CNV4BDJeZ2Q_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">15032000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_GreenmileMember_-t39gF7wsECdYI-YEspJVA"
      decimals="-3"
      id="Tc_2X5lXWh7-EqhYKRT1i257A_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">12968000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA"
      decimals="-3"
      id="Tc_rPuS4uitD0K75xmU5HYffg_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">26797000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_FoxtrotMember_UjeVWj1jQEaRZOq-I18Tng"
      decimals="-3"
      id="Tc_M3_4qt5QlE6yTeTVtbFyOg_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1527000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_XpsMember_N8SqDhJc2kCS77uGgDmeUw"
      decimals="-3"
      id="Tc_LqiilQBEakqkT7euT_2EvA_9_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">43529000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_u2QGH8_cP0K8C1Kv6_tmig_10_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-8812000</us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments>
    <us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments
      contextRef="Duration_2_1_2021_To_1_31_2022_6FniHWIdoEaqbZuSVaSgbA"
      decimals="-3"
      id="Tc_Em1qrrsZ2kGfsVLaWEJF5g_10_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-6107000</us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments>
    <us-gaap:Goodwill
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_MVfL11tzl0u506MSnrEo8g_11_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">671802000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_psw-kkODrk2MMEg_X7YsUw_11_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">608761000</us-gaap:Goodwill>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_w-Np0m5Ph0WadL7YaWYvCQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;11&#160;- Accrued Liabilities&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued compensation and benefits&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 29,710&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 32,169&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued professional fees&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,445&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,318&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other accrued liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 40,261&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 22,955&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 71,416&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 56,442&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other accrued liabilities include accrued expenses related to third party resellers and royalties, suppliers, accrued restructuring charges and accrued contingent acquisition purchase consideration.&lt;/span&gt;&lt;/p&gt;</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_TZgjannvt0GhcDwmRtnXyg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued compensation and benefits&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 29,710&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 32,169&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued professional fees&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,445&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,318&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other accrued liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 40,261&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 22,955&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 71,416&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 56,442&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_mtbzLwcDnEiByrh2wFkD_Q_3_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">29710000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_9KoHn1mncEyGlgi4ndzk0Q_3_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">32169000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_eZmP5kCw4UqcTZS_YVu5hw_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1445000</us-gaap:AccruedProfessionalFeesCurrent>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_V7c8le2qMk62iTvcdtv1Og_4_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1318000</us-gaap:AccruedProfessionalFeesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_01GdCd23wE264dT_cuy6jA_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">40261000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_l7xZi_PijUmKt_VFEAThaw_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">22955000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_Fm9UIXTCi0uSRdq6jq8DsQ_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">71416000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_Usc3HTXtLEaiQ4JcdaFlyA_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">56442000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_DYtN1RbrQ0quL0KDohFh-g">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;12&#160;&#x2013; Long-Term Debt&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We have a senior secured revolving credit facility in place with a syndicate of lenders. The facility is a &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$350.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million revolving operating credit facility to be available for general corporate purposes, including the financing of ongoing working capital needs and acquisitions. With the approval of the lenders, the credit facility can be expanded to a total of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$500.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million. The credit facility has a &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;five-year&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; maturity with no fixed repayment dates prior to the end of the &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;five-year&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; term ending January&#160;2024. Borrowings under the credit facility are secured by a first charge over substantially all of Descartes&#x2019; assets. Depending on the type of advance, interest rates under the revolving operating portion of the credit facility are based on the Canada or US prime rate, Bankers&#x2019; Acceptance (BA), US dollar London Interbank Offered Rate (LIBOR) or the Secured Overnight Financing Rate (SOFR) plus an additional &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;250&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit agreement. A standby fee of between &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;20&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;40&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;No&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; amounts were drawn on the credit facility as of July&#160;31, 2022 and the balance of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$350.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million is available for use. We were in compliance with the covenants of the credit facility as of July&#160;31, 2022.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As at July&#160;31, 2022, we had outstanding letters of credit of approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million as at January&#160;31, 2022), which were not related to our credit facility.&lt;/span&gt;&lt;/p&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="As_Of_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_5Tlo4Mm440Kh4zOEKiveOw"
      decimals="-5"
      id="Narr_SdKzyU5SC0-GfbJQaMK_4g"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">350000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="As_Of_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_oxyILRxCUEu1L7yVm8LWeg"
      decimals="-5"
      id="Narr_APH4q1mxt0ONmHnsiqpWMg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">500000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:DebtInstrumentTerm
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_CreditFacilityAxis_dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_8EoJhpV3JkaHwSBGcVw7JA"
      id="Narr_K8xffWcuvEOcMp058xGBzQ">P5Y</us-gaap:DebtInstrumentTerm>
    <us-gaap:DebtInstrumentTerm
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_CreditFacilityAxis_dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_8EoJhpV3JkaHwSBGcVw7JA"
      id="Narr_JISaBYcUBEe2WFU_W-pk1w">P5Y</us-gaap:DebtInstrumentTerm>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_ZQWWnPjZ4kC4vtoza0sUuQ"
      decimals="4"
      id="Narr_ow3rogh_l0iisuYC8I-PXw"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_us-gaap_VariableRateAxis_dsgx_CanadaOrUsPrimeRateBaOrLiborMember_3hEr1zcNckuzwGc5-3PeAA"
      decimals="4"
      id="Narr_n555riva-UGQRgSXeCme4Q"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.0250</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_C96Dr75OjU-nPOSi3ga22Q"
      decimals="4"
      id="Narr_JKmuUbs1HEe0Gb437o8zCA"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.0020</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="Duration_2_1_2022_To_7_31_2022_srt_RangeAxis_srt_MaximumMember_us-gaap_CreditFacilityAxis_dsgx_SeniorSecuredCreditFacilityMember_BuF-t3Bz_kGIMG3EfyvcZQ"
      decimals="4"
      id="Narr_E24OU31ZXEOe32t_mmNtbQ"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.0040</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:LineOfCredit
      contextRef="As_Of_7_31_2022_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_X7rdlViRlEStVH72jDoPjw"
      decimals="-5"
      id="Narr_Ly7oaJ3K_0-UaighIm7WBw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">0</us-gaap:LineOfCredit>
    <us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity
      contextRef="As_Of_7_31_2022_us-gaap_CreditFacilityAxis_dsgx_RevolvingOperatingCreditFacilityMember_us-gaap_DebtInstrumentAxis_dsgx_SeniorSecuredCreditFacilityMember_X7rdlViRlEStVH72jDoPjw"
      decimals="-5"
      id="Narr_1fNphdO77k-B8McwSswhsQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">350000000.0</us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Narr_6T_Pu9jQ0EuUCG8Pun8Ctg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">200000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-5"
      id="Narr_9kwHvzc800ObJUkP9M9jAA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">200000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_Qxde7tchhE-gz3xeH5wk2A">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;13&#160;&#x2013; Leases&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;7&#160;years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, some of which include options to extend the leases for up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;5&#160;years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The components of operating lease expense were as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Operating lease cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,078&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,122&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,143&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,215&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Short-term lease cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 150&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 53&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 299&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 170&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total operating lease cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,228&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,175&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,442&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,385&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Supplemental cash flow information related to operating leases was as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Operating cash outflows from operating leases included in measurement of lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,148&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,358&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,264&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,560&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;New ROU assets obtained in exchange for lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 122&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 833&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 346&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,161&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Supplemental information related to operating leases was as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average remaining lease term (years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2.9&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3.3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average discount rate (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2.2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2.1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Maturities of operating lease liabilities were as follows as of July&#160;31, 2022:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Operating&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Years Ended January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Leases&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 5.75pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Remainder of 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,003&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,349&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,299&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 929&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 308&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2028 and thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 178&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total lease payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 9,066&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Less: imputed interest&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 368&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,698&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,604&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Long-term&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,094&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:LesseeOperatingLeaseRemainingLeaseTerm
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      id="Narr_9DGu5SXiDE6p-96BOt2bWA">P7Y</us-gaap:LesseeOperatingLeaseRemainingLeaseTerm>
    <us-gaap:LesseeOperatingLeaseRenewalTerm
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      id="Narr_WZkb8GbhiUWl0Ax96zsZWg">P5Y</us-gaap:LesseeOperatingLeaseRenewalTerm>
    <us-gaap:LeaseCostTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Group_Tc91HEqX4EWgoyBozxLjvg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Operating lease cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,078&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,122&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,143&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,215&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Short-term lease cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 150&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 53&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 299&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 170&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total operating lease cost&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,228&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,175&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,442&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,385&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Operating cash outflows from operating leases included in measurement of lease liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,148&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,358&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,264&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,560&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;New ROU assets obtained in exchange for lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 122&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 833&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 346&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,161&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average remaining lease term (years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2.9&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3.3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:76.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average discount rate (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2.2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2.1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeaseCost
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc__GMkDCEXzEKoz5kflGHzNg_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1078000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_leQtI8Yp70qb4i1L_8DVwA_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1122000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_pFp5QAIbwEiC5Mbt_cEMrg_5_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2143000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_5DQhFIXEOUalBg7ilyvpKA_5_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2215000</us-gaap:OperatingLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_8Y5ET7vKs0mAbEtCwoL-Pw_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">150000</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_Sr_dlb1FAEGCYcCbRNdchg_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">53000</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_0_8F9kFxcEqOh70ZEHrk3w_6_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">299000</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_yKET5Vt-UE2swgVrQSuKSQ_6_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">170000</us-gaap:ShortTermLeaseCost>
    <us-gaap:LeaseCost
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_AEOQWN8txEal9hqPNuPsmQ_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1228000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_9ARG-6A3uUWzIxy7DnJ5uA_7_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1175000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_36CQtId0AkCeUu5-H8t4zQ_7_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2442000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_vG4f3dO6vUKVVWuq5AoajQ_7_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2385000</us-gaap:LeaseCost>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_D4UGHnyLu0Oe3jiJGpsCqQ_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1148000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_kzFuHbERqkqArPt8Nq-_5Q_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1358000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_ZImsDinJXkev8i_h5uYIIQ_5_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2264000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_EXmqyEKvf0aBonW76JgaTA_5_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2560000</us-gaap:OperatingLeasePayments>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_3YvibjgokUueaE3bjFpVyA_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">122000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_lBO_jWeozkezKy8BxU_lBw_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">833000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_wS1Yaw11b0CECCsxcDTJzg_6_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">346000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_ub5g3JQLS0GK5CElEvysWg_6_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1161000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      id="Tc_7y0Fl5vMrEShd3Rq4ZU_GA_3_2">P2Y10M24D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      id="Tc_36wafJ5uN0uA2lIeFJ53MQ_3_4">P3Y3M18D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="3"
      id="Tc_KUCiQ0_M10m7yTT1N7Tm6A_4_2"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.022</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="3"
      id="Tc_oAIYHytU4kGR9ndS2nT22g_4_4"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.021</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_V0cOKmnUMk-joZXEXXH2rw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Operating&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Years Ended January 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Leases&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 5.75pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Remainder of 2023&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,003&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,349&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,299&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 929&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 308&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2028 and thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 178&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total lease payments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 9,066&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Less: imputed interest&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 368&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total lease obligations&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,698&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,604&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:86.46%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Long-term&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,094&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_tJt1DCAF4USYlGhar5gz5A_3_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2003000</us-gaap:PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_tvsIqiuuSkWbSc7sZNslEA_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3349000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_hMGPXVTLfEeyaDLgmndaAQ_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2299000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_2zGhC7I-gU-LkjsVTGYToA_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">929000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_slwklbtYZECSa7-dR4J-5A_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">308000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <dsgx:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_h0H-TWUEwU2XmI9R3Dr6YA_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">178000</dsgx:LesseeOperatingLeaseLiabilityToBePaidAfterYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_zyq-FMIbkUifxPxGcNUWWQ_9_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">9066000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_-0xrQ6aIVEqgWnt02Yj77g_10_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">368000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_8O2cUGo1CEqK6tU1i_yc8g_11_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">8698000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_CIZJX-QTSECUMiagRPPTUw_12_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3604000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_K9LvUWBHZU2znjbyopTKxg_13_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">5094000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_raeWmy__p0OglK8b9rvuqg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;14&#160;- Commitments, Contingencies and Guarantees&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Commitments&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As described in Note&#160;2 to the audited consolidated financial statements for 2022 included in our 2022 Annual Report, we maintain deferred share unit (&#x201c;DSU&#x201d;) and cash-settled restricted share unit (&#x201c;CRSU&#x201d;) plans for our directors and employees. Any payments made pursuant to these plans are settled in cash. For DSUs and CRSUs, the units vest over time and the liability recognized at any given consolidated balance sheet date reflects only those units vested at that date that have not yet been settled in cash. As such, we had an unrecognized aggregate liability for the unvested DSUs and CRSUs of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively, at July&#160;31, 2022. The ultimate liability for any payment of DSUs and CRSUs is dependent on the trading price of our common shares. To partially offset our exposure to fluctuations in our stock price, we have entered into equity derivative contracts, including floating-rate equity forwards. As at July&#160;31, 2022, we had equity derivatives for &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;281,768&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; Descartes common shares and a DSU liability for &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;281,768&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; Descartes common shares, resulting in minimal net exposure resulting from changes to our share price.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingencies&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We are subject to a variety of other claims and suits that arise from time to time in the ordinary course of our business. The consequences of these matters are not presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate potential liability is not currently expected to have a material effect on our results of operations or financial position.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;"&gt;Product Warranties&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In the normal course of operations, we provide our customers with product warranties relating to the performance of our hardware, software and services. To date, we have not encountered material costs as a result of such obligations and have not accrued any liabilities related to such obligations in our condensed consolidated financial statements.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;"&gt;Business combination agreements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In respect of our acquisitions of Kontainers, ShipTrack, GreenMile, NetCHB and XPS, up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$157.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million in cash may become payable if certain revenue performance targets are met in the &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;two&#160;years&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; following the acquisition. &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;A balance of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$27.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million is accrued related to the fair value of this contingent consideration as at July&#160;31, 2022.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Guarantees&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In the normal course of business, we enter into a variety of agreements that may contain features that meet the definition of a guarantee under ASC Topic 460, &#x201c;Guarantees&#x201d;. The following lists our significant guarantees:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;"&gt;Intellectual property indemnification obligations&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by third parties arising from the use of our products. In the event of such a claim, we are generally obligated to defend our customers against the claim and we are liable to pay damages and costs assessed against our customers that are payable as part of a final judgment or settlement. These intellectual property infringement indemnification clauses are not generally subject to any dollar limits and remain in force for the term of our license agreement with our customer, which license terms are typically perpetual. Historically, we have not encountered material costs as a result of such indemnification obligations.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;"&gt;Other indemnification agreements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In the normal course of operations, we enter into various agreements that provide general indemnities. These indemnities typically arise in connection with purchases and sales of assets, securities offerings or buy-backs, service contracts, administration of employee benefit plans, retention of officers and directors, membership agreements, customer financing transactions, and leasing transactions. In addition, our corporate by-laws provide for the indemnification of our directors and officers. Each of these indemnities requires us, in certain circumstances, to compensate the counterparties for various costs resulting from breaches of representations or obligations under such arrangements, or as a result of third party claims that may be suffered by the counterparty as a consequence of the transaction. We believe that the likelihood that we could incur significant liability under these obligations is remote. Historically, we have not made any significant payments under such indemnities.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;In evaluating estimated losses for the guarantees or indemnities described above, we consider such factors as the degree of probability of an unfavorable outcome and the ability to make a reasonable estimate of the amount of loss. We are unable to make a reasonable estimate of the maximum potential amount payable under such guarantees or indemnities as many of these arrangements do not specify a maximum potential dollar exposure or time limitation. The amount also depends on the outcome of future events and conditions, which cannot be predicted. Given the foregoing, to date, we have not accrued any liability in our condensed consolidated financial statements for the guarantees or indemnities described above.&lt;/span&gt;&lt;/p&gt;</us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock>
    <dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-5"
      id="Narr_8Z6QRUDCN0GinIAgURbMyg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">900000</dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized>
    <dsgx:CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-5"
      id="Narr_FUHXQ0MVW0O9kY9o_H3BRg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1100000</dsgx:CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized>
    <dsgx:DerivativeInstrumentSharesOfCommonStockHeld
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="INF"
      id="Narr_eQtUOhhcHUGoaezONXCGoA"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">281768</dsgx:DerivativeInstrumentSharesOfCommonStockHeld>
    <dsgx:DeferredShareUnitLiabilityNumberOfCommonShares
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="INF"
      id="Narr_lVasi_LBbEe5iSvjT60ETQ"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">281768</dsgx:DeferredShareUnitLiabilityNumberOfCommonShares>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_XsbBqKi2rE2r74EqkdhjVQ"
      decimals="-5"
      id="Narr_lI6K1-_f1EulRuXr8fqhsA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">157800000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
    <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_C9U7QPU_RUCt3x_oI08wPg"
      id="Narr_vVqTfV5mxEi7bpH5DRvUyg">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="As_Of_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember_XsbBqKi2rE2r74EqkdhjVQ"
      decimals="-5"
      id="Narr_ANfo3MSXcEq9OciENnm7iQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">27600000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_dXIjrfXJGUuTd3mKs-sRRg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;15&#160;&#x2013; Share Capital&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On July&#160;16, 2020, we filed a final short-form base shelf prospectus (the &#x201c;2020 Base Shelf Prospectus&#x201d;), allowing us to offer and issue the following securities: (i)&#160;common shares; (ii)&#160;preferred shares; (iii)&#160;senior or subordinated unsecured debt securities; (iv)&#160;subscription receipts; (v)&#160;warrants; and (vi)&#160;securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. The aggregate initial offering price of securities that may be sold by us (or certain of our current or future shareholders) pursuant to the 2020 Base Shelf Prospectus during the &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;25&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;-&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;month period that the 2020 Base Shelf Prospectus, including any amendments thereto, remains valid was limited to an aggregate of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; billion. &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;No&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; securities were sold pursuant to the 2020 Base Shelf Prospectus, which was withdrawn in July&#160;2022.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On July&#160;15, 2022, we filed the 2022 Base Shelf Prospectus, allowing us to offer and issue an unlimited quantity of the following securities during the &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;25&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;-month period following thereafter: (i)&#160;common shares; (ii)&#160;preferred shares; (iii)&#160;senior or subordinated unsecured debt securities; (iv)&#160;subscription receipts; (v)&#160;warrants; and (vi)&#160;securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;No&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; securities have yet been sold pursuant to the 2022 Base Shelf Prospectus.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;On June&#160;7, 2022, Descartes announced a NCIB, commencing June&#160;10, 2022, to purchase up to approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;7.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million common shares in the open market for cancellation. Under the NCIB, Descartes would be permitted to repurchase for cancellation, at its discretion on or before June 9, 2023, up to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;10%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; of the &#x201c;public float&#x201d; (calculated in accordance with the rules&#160;of the TSX) of Descartes&#x2019; issued and outstanding common shares. Any purchases under the NCIB will be subject to the terms and limitations applicable to such NCIB, and will be made through the facilities of the TSX, Nasdaq, other designated exchanges and/or alternative Canadian trading systems, or by such other means as may be permitted by the Ontario Securities Commission or other applicable Canadian Securities Administrators. &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;No&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; common shares have yet been purchased pursuant to the NCIB.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;For the three and six&#160;month periods ended July&#160;31, 2022, cash flows provided from stock options and share units exercised were &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively, compared to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million the same periods in fiscal 2022, respectively.&lt;/span&gt;&lt;/p&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <dsgx:ShelfProspectusPeriod
      contextRef="Duration_7_16_2020_To_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_9LgcrpS3ukSQ1CCrr0Y10w"
      id="Narr_xLvV2Wk-1UWldak-yw8Ojg">P25M</dsgx:ShelfProspectusPeriod>
    <dsgx:ShelfProspectusMaximumAmount
      contextRef="As_Of_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_Nwn-TiE_lkKwtV7AsYtq2w"
      decimals="-9"
      id="Narr__7kE--9uGkOXlC_FW9C8kg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1000000000</dsgx:ShelfProspectusMaximumAmount>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="Duration_7_16_2020_To_7_16_2020_us-gaap_SubsidiarySaleOfStockAxis_dsgx_The2020BaseShelfProspectusMember_9LgcrpS3ukSQ1CCrr0Y10w"
      decimals="INF"
      id="Narr_XcStZEyOikCtZTj6Fh0MAA"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">0</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <dsgx:ShelfProspectusPeriod
      contextRef="Duration_7_15_2022_To_7_15_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_ShelfProspectusMember_i6pyt466SE63916yJIm3lw"
      id="Narr_O26XZvXX-ECebYkcuVqBPw">P25M</dsgx:ShelfProspectusPeriod>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="Duration_7_15_2022_To_7_15_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_ShelfProspectusMember_i6pyt466SE63916yJIm3lw"
      decimals="INF"
      id="Narr_x3hU50T3NkWDR3cLywGlDw"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">0</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased
      contextRef="As_Of_6_7_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_NcibMember_p3VADXYsnkOmra0hT-olgg"
      decimals="-5"
      id="Narr_fGC_gdA0kEOC411J9UW6OA"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">7400000</us-gaap:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased>
    <dsgx:MaximumPercentageOfSharesToBeRepurchased
      contextRef="Duration_6_7_2022_To_6_7_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_NcibMember_RAmCuWCVF0WQXKHFuf7B2A"
      decimals="2"
      id="Narr_-jz9-9a4BUKV9m7It1zeaQ"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.10</dsgx:MaximumPercentageOfSharesToBeRepurchased>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="Duration_6_7_2022_To_6_7_2022_us-gaap_SubsidiarySaleOfStockAxis_dsgx_NcibMember_RAmCuWCVF0WQXKHFuf7B2A"
      decimals="INF"
      id="Narr_r-k1CaRaLUul-gkhVXmelQ"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">0</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-5"
      id="Narr_YpwBMMgUlE6tVCGNlMKu7g"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">100000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-5"
      id="Narr_rv7ZyfZvnEKHdxetuKsrUQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">500000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-5"
      id="Narr_zOIVgsSZe0GBSODQxmCC6w"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">900000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-5"
      id="Narr_QI_gsMXFD0mWxkFQCrwW_w"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1500000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_Bl7a07b3FECMIhq_bhIKwg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;16&#160;- Earnings Per Share&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table sets forth the computation of basic and diluted earnings per share (&#x201c;EPS&#x201d;) (number of shares in thousands):&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.09%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.1%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net income for purposes of calculating basic and diluted earnings per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 22,902&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 23,176&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 46,017&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 41,597&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 84,783&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 84,566&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 84,774&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 84,534&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Dilutive effect of employee stock options&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 401&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 421&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 433&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 417&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Dilutive effect of restricted and performance share units&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,154&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,141&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,137&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,115&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average common and common equivalent shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 86,338&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 86,128&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 86,344&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 86,066&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Earnings per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Basic&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.27&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.27&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.54&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.49&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.27&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.27&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.53&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.48&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;For the three&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;501,494&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;248,505&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; options, respectively, were excluded from the calculation of diluted EPS as those options had an exercise price greater than or equal to the average market value of our common shares during the applicable periods and their inclusion would have been anti-dilutive. For the three&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021, the application of the treasury stock method excluded &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;135,776&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;91,081&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; stock options, respectively, from the calculation of diluted EPS as the assumed proceeds from the unrecognized stock-based compensation expense of such options that are attributed to future service periods made such options anti-dilutive.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;For the six&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;6,960&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;248,505&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; options, respectively, were excluded from the calculation of diluted EPS as those options had an exercise price greater than or equal to the average market value of our common shares during the applicable periods and their inclusion would have been anti-dilutive. For the six&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021, the application of the treasury stock method excluded &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;630,310&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;91,081&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; stock options, respectively, from the calculation of diluted EPS as the assumed proceeds from the unrecognized stock-based compensation expense of such stock options that are attributed to future service periods made such stock options anti-dilutive.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;For the three&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021, the application of the treasury stock method excluded PSUs and RSUs of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;97,991&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;77,441&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, respectively, from the calculation of diluted EPS as the unrecognized stock-based compensation expense of such PSUs and RSUs that are attributed to future service periods made such PSUs and RSUs anti-dilutive.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;For the six&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021, the application of the treasury stock method excluded PSUs and RSUs of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;77,441&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;, respectively, from the calculation of diluted EPS as the unrecognized stock-based compensation expense of such PSUs and RSUs that are attributed to future service periods made such PSUs and RSUs anti-dilutive.&lt;/span&gt;&lt;/p&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb__XhIm2MjG0qcXn7d2bXaNA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table sets forth the computation of basic and diluted earnings per share (&#x201c;EPS&#x201d;) (number of shares in thousands):&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.09%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:19.1%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Net income for purposes of calculating basic and diluted earnings per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 22,902&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 23,176&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 46,017&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 41,597&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 84,783&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 84,566&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 84,774&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 84,534&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Dilutive effect of employee stock options&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 401&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 421&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 433&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 417&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Dilutive effect of restricted and performance share units&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,154&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,141&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,137&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,115&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Weighted average common and common equivalent shares outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 86,338&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 86,128&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 86,344&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 86,066&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Earnings per share&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Basic&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.27&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.27&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.54&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.49&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.69%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.27&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.14%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.27&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 0.53&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.48&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_xYVNQxXGWk-Md8CHOcqgKw_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">22902000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_7LFFSvL3sUKaIeCssKMPEA_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">23176000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_Bu1S2QM_pEicn69UYrYGdg_5_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">46017000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_3-mBUkdiRESKLfv6_wsplw_5_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">41597000</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_esHano1Bx0eau5sr0LUFmA_7_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">84783000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_8PG55lPNx0uMrPGrQLGcAw_7_4"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">84566000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_kIdzKBLSnU-6SGdEzDfEsg_7_6"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">84774000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_8p7_1uL5xUuu8ckXJYtKZw_7_8"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">84534000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_gKtXqmCtHEy0rsHiVP-Smw"
      decimals="-3"
      id="Tc_IGuRof2Yfk25t6CtyL6fiQ_8_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">401000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_prUnCE0vHU2CZlObbI7c3A"
      decimals="-3"
      id="Tc_Fnr2EROVmEC3KvVnpovdnA_8_4"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">421000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember__ZKuFHdJIUuHMkN80GGSYQ"
      decimals="-3"
      id="Tc_XfAcj9xeYUiecA7yCquzGA_8_6"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">433000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_8ld1rLDRxkauUyyOv5MDHA"
      decimals="-3"
      id="Tc_ymYekbk0ZUGsG2JA-HZo8Q_8_8"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">417000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Q4k64j2ck0SOPLIylYgG8w"
      decimals="-3"
      id="Tc__CCxsRsi3kyuZ5rJ7y-KEw_9_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">1154000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_qKEQbeCwuEWW42gy5p0DKQ"
      decimals="-3"
      id="Tc_9HIzVO5FM0622HzolmBkRg_9_4"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">1141000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg"
      decimals="-3"
      id="Tc_tAQkKpGoaEKPBc_oEprp9w_9_6"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">1137000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_dI9hliU8u0aWn49nyDCxmg"
      decimals="-3"
      id="Tc_lPyKVaGbmUWL_S0leYqxqw_9_8"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">1115000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_o0wPXCsPa0qny7w2OWHHXg_10_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">86338000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_ZBtfazrIaUGHMZUVeOSlNQ_10_4"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">86128000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_1NLWo9y2EkyPFduWnOUIfw_10_6"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">86344000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_6A84Mf1I9UigI2MMkNChoA_10_8"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">86066000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="2"
      id="Tc_7bgP5JJYXkazoLIMudPa4Q_12_2"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.27</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="2"
      id="Tc_6L4riMrVyUq5tk7Y8O_xZA_12_4"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.27</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="2"
      id="Tc_R0QEw1DJzEmezHWUeZi4ZQ_12_6"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.54</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="2"
      id="Tc_fXVP2XdqkUOwtuxlbMSoXA_12_8"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.49</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="2"
      id="Tc_L7DNwYKsoUGx6hq3XWLRFQ_13_2"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.27</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="2"
      id="Tc_iGZaZk9T-0SvWIi0nlNxKA_13_4"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.27</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="2"
      id="Tc_0iKrJy17yEiPio5-kktgbA_13_6"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.53</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="2"
      id="Tc_mXx2NjIQuEmnKBqtwbPagA_13_8"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">0.48</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_U28XRtBbs0muZk8nwV65Qw"
      decimals="INF"
      id="Narr_Dpx01Ldvz0Oelmm0TUkQZw"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">501494</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_T-Hh_4r-0EilKfJca4OPYw"
      decimals="INF"
      id="Narr_SJC0j0yBYEq264eZyqapLA"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">248505</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_Ljk9gnkYv0uPaFwxEUDYYQ"
      decimals="INF"
      id="Narr_MpgRSaMpeUqYLhIp0B7jag"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">135776</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_n9nqHO6VTUSFL303QTkaqQ"
      decimals="INF"
      id="Narr_jMGCuRgVmE6ToTAIyuALmA"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">91081</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_d3OVZMS_mEuCZt7lNdssIg"
      decimals="INF"
      id="Narr_sSiWIw3ylUq944KlmR_C1A"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">6960</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_-9Xns5fe8kyNihKddZEjtQ"
      decimals="INF"
      id="Narr_KWmIecsEwUil5zihFu3PCg"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">248505</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_f3x1loSyykWR7KebNXxfpQ"
      decimals="INF"
      id="Narr_k944LPxBl0yxCzb1-if61A"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">630310</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_StockOptionsTreasuryStockMethodMember_4Ji9IXYRNUSjeGWZHHngCw"
      decimals="INF"
      id="Narr_2DyRzjd9WU-uurORelAlJw"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">91081</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_38FZhPckMEWtoFafv9utdg"
      decimals="INF"
      id="Narr_L1aRrhr3XkiMewVSQh4kDQ"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">97991</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_GOd_19LxTkavOI2wfz95Jg"
      decimals="INF"
      id="Narr_BYswUDa7oEmHh5XvrVYiEw"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">77441</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_K0dMOw3VzUa5f3G4Caw9OA"
      decimals="INF"
      id="Narr_9BFbpH3qIkWYTuA23bQhQQ"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_dsgx_PSUsAndRSUsMember_9tSHiegeAkacW64g2wUp3Q"
      decimals="INF"
      id="Narr_wcDZd1QiQU2hWPRa4riCTw"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">77441</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_rbXGGCinm0GzKw-IxouXNA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;17&#160;- Stock-Based Compensation Plans&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total estimated stock-based compensation expense recognized in our condensed consolidated statement of operations was as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost of revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 254&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 199&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 449&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 343&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Sales and marketing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 675&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 918&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,160&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,279&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Research and development&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 490&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 388&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 857&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 668&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;General and administrative&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,317&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,510&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4,057&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,877&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect on net income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,736&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,015&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 6,523&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,167&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Differences between how GAAP and applicable income tax laws treat the amount and timing of recognition of stock-based compensation expense may result in a deferred tax asset. We have recorded a valuation allowance against any such deferred tax asset except for &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at January&#160;31, 2022) recognized in the United States. We realized a nominal tax benefit in connection with stock options exercised during both the three and six&#160;month periods ended July&#160;31, 2022 and a nominal tax benefit for both the same periods in fiscal 2022.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Stock Options&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As of July&#160;31, 2022, we had &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1,627,978&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; stock options granted and outstanding under our shareholder-approved stock option plan and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2,700,683&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; remained available for grant.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As of July&#160;31, 2022, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$10.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million of total unrecognized compensation costs related to non-vested stock option awards is expected to be recognized over a weighted average period of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;2.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;years. The total fair value of stock options vested during the three and six&#160;month periods ended July&#160;31, 2022 was nominal and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;For the three and six&#160;month periods ended July&#160;31, 2022, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;92,422&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;354,699&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; stock options, respectively, were granted compared to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1,000&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;269,025&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; stock options for the same periods in fiscal 2022. The weighted average grant-date fair value of stock options granted during the six&#160;month periods ended July&#160;31, 2022 and July&#160;31, 2021 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$18.91&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; per option and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$16.85&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; per option, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The weighted-average assumptions were as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:24.13%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Expected dividend yield (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Expected volatility (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 29.2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 27.8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Risk-free rate (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.7&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Expected option life (years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:9.5pt;"&gt;A summary of option activity under all of our plans is presented as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Aggregate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Stock&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Intrinsic&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Options&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Exercise&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Price&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;(in&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,319,279&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 42.35&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 41.5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 354,699&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 62.57&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (32,337)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26.51&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (13,663)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 53.06&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,627,978&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 46.34&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 37.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested or expected to vest at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,627,978&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 46.34&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 37.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercisable at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 827,223&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 36.69&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26.9&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The total intrinsic value of stock options exercised during the three and six&#160;month periods ended July&#160;31, 2022 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, compared to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$2.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million during the same periods of fiscal 2022, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Performance Share Units&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;A summary of PSU activity is as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Aggregate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Granted&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Intrinsic&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;PSUs&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Date&#160;Fair&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;(in&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 777,538&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35.76&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 57.4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 97,991&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 66.58&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Performance units issued&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 39,704&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 55.68&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 915,233&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 39.36&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.0&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 63.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested or expected to vest at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 915,233&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 39.36&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.0&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 63.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercisable at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 654,467&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 27.43&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 45.3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The aggregate intrinsic value represents the total pre-tax intrinsic value (the aggregate closing share price of our common shares on July&#160;31, 2022) that would have been received by PSU holders if all PSUs had been vested on July&#160;31, 2022.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As of July&#160;31, 2022, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$10.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;years. The total fair value of PSUs vested during the three and six&#160;month periods ended July&#160;31, 2022 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$5.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Restricted Share Units&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;A summary of RSU activity is as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Aggregate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Granted&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Intrinsic&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;RSUs&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Date&#160;Fair&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;(in&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 410,980&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 29.17&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5.0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 30.3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 63,651&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 63.05&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 474,631&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 33.24&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 32.9&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested or expected to vest at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 474,631&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 33.24&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 32.9&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercisable at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 355,675&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 24.17&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.9&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 24.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The aggregate intrinsic value represents the total pre-tax intrinsic value (the aggregate closing share price of our common shares on July&#160;31, 2022) that would have been received by RSU holders if all RSUs had been vested on July&#160;31, 2022.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As of July&#160;31, 2022, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$5.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;1.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;years. The total fair value of RSUs vested during both the three and six&#160;month periods ended July&#160;31, 2022 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;nil&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred Share Unit Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As at July&#160;31, 2022, the total number of DSUs held by participating directors was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;281,768&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;252,011&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; at January&#160;31, 2022), representing an aggregate accrued liability of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$18.5&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$18.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at January&#160;31, 2022). During the six&#160;month period ended July&#160;31, 2022, &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;29,757&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; DSUs were granted. The fair value of the DSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to DSUs recognized during the three and six&#160;month periods ended July&#160;31, 2022 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$2.7&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively, compared to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$3.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$3.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for the same periods in fiscal 2022, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cash-Settled Restricted Share Unit Plan&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;A summary of activity under our CRSU plan is as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;CRSUs&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 24,428&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,948&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested and settled in cash&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (9,463)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (74)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 22,839&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-vested at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 22,839&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We recognize the compensation cost of the CRSUs ratably over the service/vesting period relating to the grant and have recorded an aggregate accrued liability of &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at July&#160;31, 2022 (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at January&#160;31, 2022). As at July&#160;31, 2022, the unrecognized aggregate liability for the unvested CRSUs was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.1&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.0&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at January&#160;31, 2022). The fair value of the CRSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to CRSUs recognized during the three and six&#160;month periods ended July&#160;31, 2022 was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively, compared to &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$0.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for the same periods in fiscal 2022, respectively.&lt;/span&gt;&lt;/p&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_YpH83Es0W0GNi_SlRC8uhA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Cost of revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 254&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 199&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 449&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 343&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Sales and marketing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 675&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 918&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,160&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,279&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Research and development&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 490&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 388&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 857&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 668&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;General and administrative&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,317&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,510&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4,057&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,877&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect on net income&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,736&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 3,015&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 6,523&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,167&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_5ZjgfwxQ9kKeGsbBNwhZSA"
      decimals="-3"
      id="Tc_l9XmLhEfdkKmNZ9PZUCbvg_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">254000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_zOkqDq1YqkqEBgq3qiIRZg"
      decimals="-3"
      id="Tc_Q57G1jKwikCoRkC_c4dOWg_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">199000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_cEHL2mrLr0ubBY4lGGzQCg"
      decimals="-3"
      id="Tc_S8z7kOkT3UGxfb2Bs_CarA_5_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">449000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_CostOfSalesMember_ZDrTvwcgTU-FjwM-oOw_JA"
      decimals="-3"
      id="Tc_358bK1gzC0CPqVhntHfguw_5_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">343000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_EWhDl7ZVq0mCz3exeypa3w"
      decimals="-3"
      id="Tc_7PsnAOiV3EqmgcpqHsmqtQ_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">675000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_twm-9YcOLE2Hg0GKqFe7QA"
      decimals="-3"
      id="Tc_xNerhSSzkEOKJYTeADapeQ_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">918000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_Un26geBFQUmm51U5nbRQMw"
      decimals="-3"
      id="Tc_efs3cszcx066Rt5wHMOrQw_6_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1160000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_SellingAndMarketingExpenseMember_iG_J76izmUyc5RJ9s8njPg"
      decimals="-3"
      id="Tc_5h988Iau0UqDnhDy71IDuA_6_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1279000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_aTKnyMu5u0ejEEjX7YbwUQ"
      decimals="-3"
      id="Tc_E1c4VpHNxEebmEom5QVa4g_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">490000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_DTHJ6vl5_EOgIujhxjq3lw"
      decimals="-3"
      id="Tc_Biea3KdSHkCRN9Ow0Lz7Pw_7_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">388000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_aghjWuxy_k6oZu79HpTW8A"
      decimals="-3"
      id="Tc_TYi13A9o_Em8EtWmjKd2Rw_7_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">857000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_ResearchAndDevelopmentExpenseMember_joDTZT4GSUCcdfOMtuwScQ"
      decimals="-3"
      id="Tc_S0D9t6b44kKInYj17D-_Qw_7_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">668000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_u8Eak7lD3EC3U2Nh5WI3gw"
      decimals="-3"
      id="Tc_WZpWtz8fekOYSClieUrwRg_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2317000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_QjMMSpUPzUarN6J1mlT5hA"
      decimals="-3"
      id="Tc_EItYDyHK-UqZUkVY-ca2cg_8_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1510000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_YliF3vhnP0iE11BzFydcBg"
      decimals="-3"
      id="Tc_BhjBtOFW2EunN_Sw7h6RIg_8_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4057000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_EbAIlI12WUa-adjEMKumIQ"
      decimals="-3"
      id="Tc_DTNni7HHa0SLXnBj7fHfew_8_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2877000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_3g8ctX8AnE-3-JoMKk7XPQ_9_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3736000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_g2xX0o8BjkyeiUxZz6xgEw_9_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3015000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_8tbaVi1yNkesEHHArhOp9A_9_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">6523000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_hT4sph2WB0yJWIQ2pYJzgw_9_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">5167000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Narr_mdNlK1QoREKcmBL9kwCTYw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">700000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-5"
      id="Narr_efITTH_qBk2vZ3fG-3VzqQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">700000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_9XJhAKFCC02Gr9iVtZ5R3w"
      decimals="0"
      id="Narr_0JSaDbGBRUOYSts6hIPXvw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1627978</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_9XJhAKFCC02Gr9iVtZ5R3w"
      decimals="0"
      id="Narr_1N4MU7uku0uXsSBAE3k2rA"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">2700683</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_tM0Q6ljYx0G_13Wkrs6Xdg"
      decimals="-5"
      id="Narr_XYXLvq1iskKuyKOCllvS_g"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10500000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember__ZKuFHdJIUuHMkN80GGSYQ"
      id="Narr_IRzJm2bJ7kGrWVYd4kWf0w">P2Y10M24D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember__ZKuFHdJIUuHMkN80GGSYQ"
      decimals="-5"
      id="Narr_6Sqkpkf430q1mTAKukgWSg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">100000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_XJmVqfLn7UiFJvCqxwOAlA"
      decimals="0"
      id="Narr_X9EFdpzO3U-sSSjpZORQvw"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">92422</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_26mOEtGXe0GfTRnsQBkcJw"
      decimals="0"
      id="Narr_lhkEWONe_EyGqRLkrb3k_w"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">354699</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_H7_2is4f7UCcfvvfAI23GA"
      decimals="0"
      id="Narr_PX1uKx290kGrOGOb8TtlMw"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">1000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Xr1rfxtcIEavXwIdjmzWTQ"
      decimals="0"
      id="Narr_eiGhQ-bEv0CZtOxsR7k6cA"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">269025</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_26mOEtGXe0GfTRnsQBkcJw"
      decimals="2"
      id="Narr_SXru17vBxkWtpSFsYx5xzQ"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">18.91</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_Xr1rfxtcIEavXwIdjmzWTQ"
      decimals="2"
      id="Narr_JqoqHzYWBEuBVEEZGRQ7YQ"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">16.85</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_Sa-wAq1Wj0-rykAg8pd45w">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:24.13%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Expected dividend yield (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; &#x2014;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Expected volatility (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 29.2&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 27.8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Risk-free rate (%)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 0.7&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Expected option life (years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="3"
      id="Tc_VVXWqT85zEeOxlWxaJH97w_5_2"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.292</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="3"
      id="Tc_lrQ4a2cE7U6CRRzUjmABTw_5_4"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.278</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="3"
      id="Tc_QupSc6T4cEiAhEPkRnYNmg_6_2"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.024</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="3"
      id="Tc_pBOuWhcKnkWijOTTwO1xNw_6_4"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.007</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tc_iCK24uI8rkWw06oDAdfiig_7_2">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      id="Tc_RiVHsJQd0EqWBWVsCcev5A_7_4">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_XhwuQNoawUWu35nC6AtGog">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Aggregate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Stock&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Intrinsic&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Options&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Exercise&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Price&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;(in&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,319,279&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 42.35&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 41.5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 354,699&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 62.57&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (32,337)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26.51&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (13,663)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 53.06&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,627,978&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 46.34&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 37.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested or expected to vest at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,627,978&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 46.34&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 37.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:47.76%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercisable at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 827,223&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 36.69&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.5&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 26.9&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="0"
      id="Tc_JVz0PnP7Zk-y24GyQnrZrg_6_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">1319279</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="2"
      id="Tc_nhRdYdcqGkulgP6r8EhwKQ_6_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">42.35</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="Duration_2_1_2021_To_1_31_2022_6FniHWIdoEaqbZuSVaSgbA"
      id="Tc_IuEreFjz-EuWR54erHL-Fg_6_7">P4Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-5"
      id="Tc_bRyJMhWrnE-VvXJyY9BEYQ_6_10"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">41500000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="0"
      id="Tc_KSzqktz4oE--b_ZeoD39MQ_7_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">354699</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="2"
      id="Tc_PgjIeROXXEisWRr9M4p5kQ_7_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">62.57</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="0"
      id="Tc_khbgu8w7ykqw4dhD3cCFig_8_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">32337</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="2"
      id="Tc_8JvPFmUJ202kgC4SzW-k5Q_8_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">26.51</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="0"
      id="Tc_YkHy2Ai1L0W1FFZmVo2oXQ_9_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">13663</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="2"
      id="Tc_WuhW3ttzT0eUMiu1vUC-1w_9_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">53.06</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="0"
      id="Tc_zXMXm04m3UWdfPzvAtc7Jg_10_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">1627978</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="2"
      id="Tc_uQ42tQ2JQESWj8gCKpGjig_10_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">46.34</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tc_GJh0okbJAUaj5zEnnA1Y9w_10_7">P4Y7M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Tc_XPQ9M3UTj0e-YADZ09BOcA_10_10"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">37400000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="0"
      id="Tc_8Wo-YYjqOUSwlbuThQuYcw_12_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">1627978</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="2"
      id="Tc_EtSd1I1c00iuF0QjaOUPWA_12_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">46.34</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tc_Lt54u8CElkao9IdDm2zYYQ_12_7">P4Y7M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Tc_z0WIkfzvFUmAvcRJbGCncQ_12_10"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">37400000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="0"
      id="Tc_Aymo7DHMrUyB6mkgna9J5A_14_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">827223</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="2"
      id="Tc_q9yvpXXPoUWdbcXyyTgkmw_14_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">36.69</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tc_ApsyuREw-k-fSMOlrpaasA_14_7">P3Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Tc_7ENg6HgRPkuJfcBWtpECAA_14_10"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">26900000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-5"
      id="Narr_ASfEYpkxu0-Dr7ziqybZCg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-5"
      id="Narr_1w2PX4hGv0-62JR01-tI8w"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1300000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-5"
      id="Narr_HP28wksIMkW__YuV900zrw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1400000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-5"
      id="Narr_ThsfAaoLvUWugeX_bW-6gA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2000000.0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_lUTc-4hn8024SjFyu2a7Pg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Aggregate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Granted&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Intrinsic&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;PSUs&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Date&#160;Fair&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;(in&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 777,538&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 35.76&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4.8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 57.4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 97,991&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 66.58&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Performance units issued&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 39,704&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 55.68&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 915,233&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 39.36&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.0&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 63.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested or expected to vest at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 915,233&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 39.36&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.0&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 63.4&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercisable at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 654,467&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 27.43&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 45.3&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_CI-4MPED-ke4lzaujLl9Sw"
      decimals="0"
      id="Tc_rGXN5ILFKEOdY9oeZQRZkQ_6_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">777538</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_CI-4MPED-ke4lzaujLl9Sw"
      decimals="2"
      id="Tc_GugU3QIa90ymqq8xUegORg_6_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">35.76</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_1_30_2022_To_1_30_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Cvlh80GwZkONLsvFvRGc9g"
      id="Tc_x6xP0MLMZE-WIeE1YGg9jw_6_7">P4Y9M18D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_CI-4MPED-ke4lzaujLl9Sw"
      decimals="-5"
      id="Tc_qPyUGY4FnkCkVDh4hdX9Cg_6_10"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">57400000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A"
      decimals="0"
      id="Tc_AWniPmD7TkSp98uOtP-Tqw_7_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">97991</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A"
      decimals="2"
      id="Tc_RpM58645dUuquCzSVBYs6w_7_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">66.58</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A"
      decimals="0"
      id="Tc_ZjO3JwtqeE-JMR3gb2bS4Q_8_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">39704</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A"
      decimals="2"
      id="Tc_MPKzbRKFukGZVg1bT2vfFQ_8_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">55.68</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A"
      decimals="0"
      id="Tc_39KCqa5WJU-brEo8hL6K7Q_9_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">915233</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A"
      decimals="2"
      id="Tc_61MuBGaYak6GqTY9G6BV4A_9_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">39.36</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A"
      id="Tc_Ejsa3MsCAEexikc1h7WUnQ_9_7">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A"
      decimals="-5"
      id="Tc_unPABVFutUeiRT23-upPsw_9_10"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">63400000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A"
      decimals="0"
      id="Tc_dbwhjKAuUkOG3W8ujDwZpg_11_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">915233</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A"
      decimals="2"
      id="Tc_WIoCaCWnqEaBhssWqrlNsA_11_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">39.36</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A"
      id="Tc_KtccP6gQQ0uU_Iyoe9jfLg_11_7">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A"
      decimals="-5"
      id="Tc_LG7VWsuXA0SUN1L_fNnFlQ_11_10"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">63400000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A"
      decimals="0"
      id="Tc_32bRh1UMo0yhzkiH6F38DQ_13_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">654467</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A"
      decimals="2"
      id="Tc_18oWNeUpz0qBfgqwla38xw_13_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">27.43</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A"
      id="Tc_emuoJE6fnUiNJ_usOA3OGg_13_7">P3Y7M6D</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A"
      decimals="-5"
      id="Tc_g9ziU02CbUyG_eKFFyga4w_13_10"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">45300000</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_f-rMtb9zb02N7nKOpYQk8A"
      decimals="-5"
      id="Narr_OLrb1KTXS0eQwOO6DaKGTA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10200000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A"
      id="Narr_E0f_bHUkqE2V6uRk88IAPA">P1Y7M6D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_XnYSDwS3ckiVl3gWyWt_5Q"
      decimals="-5"
      id="Narr_JsF6RbKSiEeyEkPKSylBvw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ZIj79-6etk6jYAH4SHPz8A"
      decimals="-5"
      id="Narr_LkGscsw8Mk2YgMnn5WtElQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">5200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue>
    <us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_QnYOcWCzyky-8zIDEyIzqQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Aggregate&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Granted&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Intrinsic&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;RSUs&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Date&#160;Fair&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Value&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;(in&#160;millions)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 410,980&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 29.17&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5.0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 30.3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 63,651&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 63.05&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 474,631&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 33.24&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 32.9&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested or expected to vest at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 474,631&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 33.24&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5.1&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 32.9&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Exercisable at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 355,675&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 24.17&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3.9&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;$&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 24.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_H6_bruhxJ0-p58CUiuS77w"
      decimals="0"
      id="Tc_2wW3ElV8fESqbdAMdCkKuQ_6_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">410980</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_H6_bruhxJ0-p58CUiuS77w"
      decimals="2"
      id="Tc_D4Hf2OFqeEOx8xtcFlL9ZA_6_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">29.17</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2021_To_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_UengJu3z4UW0I8qVKvgHTA"
      id="Tc_bcDCSEh_IEyfN-ExJrTr1w_6_7">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_1_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_H6_bruhxJ0-p58CUiuS77w"
      decimals="-5"
      id="Tc_gFiddvM9EkCMf8tFBZ4ruw_6_10"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">30300000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg"
      decimals="0"
      id="Tc_0dSxxsdhy0C_zt0q4qNNMg_7_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">63651</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg"
      decimals="2"
      id="Tc_0ik7vR-4hECdZKe2DyBVKA_7_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">63.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw"
      decimals="0"
      id="Tc_JowTwSQsC0K8-xqzlk38EQ_8_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">474631</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw"
      decimals="2"
      id="Tc_WvySPxsw6EiEutd_J4w5Zw_8_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">33.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg"
      id="Tc_ccZHSPozWEGlwlzLjhDicA_8_7">P5Y1M6D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw"
      decimals="-5"
      id="Tc_hkstuh0dtkOG0A_nzYAxRg_8_10"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">32900000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw"
      decimals="0"
      id="Tc_pQK2Y2HiM0isx6HDmBAcHw_10_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">474631</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw"
      decimals="2"
      id="Tc_MhRVHiYLs0G-zv0IUyOJvQ_10_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">33.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg"
      id="Tc_KZJSDa2WA06U1op_EBMzeQ_10_7">P5Y1M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw"
      decimals="-5"
      id="Tc_oLvOhkPoikWMPgyhuZCwIQ_10_10"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">32900000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw"
      decimals="0"
      id="Tc_m7hIGQS0J0m2A93E7uS7sw_12_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">355675</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw"
      decimals="2"
      id="Tc_3SnnwO44XUuB8Yqy8Y7zZQ_12_5"
      unitRef="Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw">24.17</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg"
      id="Tc_va8UJU7cFkuIwnT2Q8Jm3g_12_7">P3Y10M24D</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm>
    <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw"
      decimals="-5"
      id="Tc_5Dx3dF7vc0Gdeem5qyWe6Q_12_10"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">24600000</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_xRdtnHpT9ESobF6MnyhzHw"
      decimals="-5"
      id="Narr_qdv6YBRRwEahvKaMAXE-2A"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">5600000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg"
      id="Narr_rN_L38_ZdUG8LNHYOIrCGA">P1Y10M24D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg"
      decimals="-3"
      id="Narr_mlbStYF-yEGkrTy5-RBzeA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Q4k64j2ck0SOPLIylYgG8w"
      decimals="-3"
      id="Narr_KVVi2zB79kCW2UqwARnZ1w"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <dsgx:DeferredShareUnitsOutstandingNumber
      contextRef="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_z2sIJoskBkObtdU2ysRlgA"
      decimals="0"
      id="Narr_5MRI4ZxMDk2isYJN6VftGg"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">281768</dsgx:DeferredShareUnitsOutstandingNumber>
    <dsgx:DeferredShareUnitsOutstandingNumber
      contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_kA9fbVE_20-Sy3Zv7XzheA"
      decimals="0"
      id="Narr_3i4j2VTkDkCKiLrKVZHk2Q"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">252011</dsgx:DeferredShareUnitsOutstandingNumber>
    <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent
      contextRef="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_z2sIJoskBkObtdU2ysRlgA"
      decimals="-5"
      id="Narr__daUZUKiwkS8C5sFZXby-w"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">18500000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
    <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent
      contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_kA9fbVE_20-Sy3Zv7XzheA"
      decimals="-5"
      id="Narr_Sb-CRMJloEeQdAlglZ6e7w"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">18300000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
    <dsgx:DeferredShareUnitsGrantsInPeriod
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_ESIN5UiZbkK2LwQKiga11g"
      decimals="0"
      id="Narr_zm2qGPhHIEahwG9sfmpqLg"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">29757</dsgx:DeferredShareUnitsGrantsInPeriod>
    <dsgx:DeferredShareUnitsCompensationExpense
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_xEjZ57AfGkmUCg9foKrNYg"
      decimals="-5"
      id="Narr_LJ1so0cTKE2CFvF0Gf_qHQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2700000</dsgx:DeferredShareUnitsCompensationExpense>
    <dsgx:DeferredShareUnitsCompensationExpense
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_ESIN5UiZbkK2LwQKiga11g"
      decimals="-5"
      id="Narr_6zhzsDzRHUa5mR4wPsY30g"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">300000</dsgx:DeferredShareUnitsCompensationExpense>
    <dsgx:DeferredShareUnitsCompensationExpense
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_pOpE-IdgR0qB035YIFHkFw"
      decimals="-5"
      id="Narr_DcRE6aGv6kyl8YVetwuijA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3000000.0</dsgx:DeferredShareUnitsCompensationExpense>
    <dsgx:DeferredShareUnitsCompensationExpense
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_DeferredShareUnitPlanMember_hWz9s3-KH0CY2efj4UpdAQ"
      decimals="-5"
      id="Narr_Xs36b5UgJUSryNnAw9rFrg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3200000</dsgx:DeferredShareUnitsCompensationExpense>
    <dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_sXcr64any024OqHjeFimwA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Weighted-&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Average&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Number&#160;of&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Remaining&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;CRSUs&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contractual&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Outstanding&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Life&#160;(years)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 24,428&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1.4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,948&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Vested and settled in cash&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (9,463)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (74)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 22,839&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Non-vested at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 22,839&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1.6&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock>
    <dsgx:CRSUAwardsOutstandingNumber
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="0"
      id="Tc__4iGIo5U7E66hp47VN08Og_6_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">24428</dsgx:CRSUAwardsOutstandingNumber>
    <dsgx:CRSUAwardsWeightedAverageContractualLife
      contextRef="Duration_2_1_2021_To_1_31_2022_6FniHWIdoEaqbZuSVaSgbA"
      id="Tc_8k2tCmDa10iatHsjOUVGQA_6_4">P1Y4M24D</dsgx:CRSUAwardsWeightedAverageContractualLife>
    <dsgx:CRSUAwardsGrantsInPeriod
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="0"
      id="Tc_pbt91PH3Ck2tY4RunC5w0w_7_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">7948</dsgx:CRSUAwardsGrantsInPeriod>
    <dsgx:CRSUAwardsVestedAndSettledInCash
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="0"
      id="Tc_f-VHvDjZEkuPkeGpb2fRbQ_8_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">9463</dsgx:CRSUAwardsVestedAndSettledInCash>
    <dsgx:CRSUAwardsForfeitedInPeriod
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="0"
      id="Tc_FPgMJBMU70u2O51U-8cFBQ_9_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">74</dsgx:CRSUAwardsForfeitedInPeriod>
    <dsgx:CRSUAwardsOutstandingNumber
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="0"
      id="Tc_Ejbej0t4y0iCkW3QJU4uMg_10_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">22839</dsgx:CRSUAwardsOutstandingNumber>
    <dsgx:CRSUAwardsWeightedAverageContractualLife
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tc_Ar0q1prpC0uy50yD6zZutA_10_4">P1Y7M6D</dsgx:CRSUAwardsWeightedAverageContractualLife>
    <dsgx:CRSUAwardNonvestedNumber
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="0"
      id="Tc_IpIMBnHep0KWhbz1qt-D7A_12_2"
      unitRef="Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA">22839</dsgx:CRSUAwardNonvestedNumber>
    <dsgx:CRSUAwardNonvestedWeightedAverageContractualLife
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tc_RSTaunXBEUy-Mn8eWKj1qg_12_4">P1Y7M6D</dsgx:CRSUAwardNonvestedWeightedAverageContractualLife>
    <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent
      contextRef="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_mtA9I9pvSE6FG3lE9Ytp1g"
      decimals="-5"
      id="Narr_GK-K_mv8u0aQBqGtqRONkw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">600000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
    <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent
      contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_BJ-b9jesj0WuJ8oHn98s5g"
      decimals="-5"
      id="Narr_ZSrDtPenI0mCU0ZPXhfzNQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">800000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_mtA9I9pvSE6FG3lE9Ytp1g"
      decimals="-5"
      id="Narr_yBExAbFsw0KKU80Nz4AryA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1100000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="As_Of_1_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_BJ-b9jesj0WuJ8oHn98s5g"
      decimals="-5"
      id="Narr_yrSTU3uRtEybWkaGOstEFg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1000000.0</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <dsgx:CashSettledRestrictedShareUnitsCompensationExpense
      contextRef="Duration_5_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_TK7uSnCdt0a5El16GyXQCg"
      decimals="-5"
      id="Narr_A-08LKf6NUOtSFh9wi73pw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">200000</dsgx:CashSettledRestrictedShareUnitsCompensationExpense>
    <dsgx:CashSettledRestrictedShareUnitsCompensationExpense
      contextRef="Duration_2_1_2022_To_7_31_2022_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_7D-XtcsX3kiVBp_0hZ6H6w"
      decimals="-5"
      id="Narr_XZJ8dFDYukOBWG7QJ3dFbg"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">400000</dsgx:CashSettledRestrictedShareUnitsCompensationExpense>
    <dsgx:CashSettledRestrictedShareUnitsCompensationExpense
      contextRef="Duration_5_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_gYOO354_Qkmac19gV8PY1Q"
      decimals="-5"
      id="Narr_33LO-Mfdq0yq1VFNtn3j4g"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">300000</dsgx:CashSettledRestrictedShareUnitsCompensationExpense>
    <dsgx:CashSettledRestrictedShareUnitsCompensationExpense
      contextRef="Duration_2_1_2021_To_7_31_2021_us-gaap_PlanNameAxis_dsgx_CashSettledRestrictedShareUnitMember_dEb3HPSleUS1f39A7vfEuw"
      decimals="-5"
      id="Narr_ZMckzw21lESitqQonBdF6A"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">600000</dsgx:CashSettledRestrictedShareUnitsCompensationExpense>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_DOOONl8AGUO7kjQNpslapg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;18&#160;- Income Taxes&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The effective tax rates (which is the provision for income taxes expressed as a&#160;percentage of income before income taxes) were &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;27.8%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;26.0%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; for the three and six&#160;month periods ended July&#160;31, 2022, respectively, and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;10.5%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;15.3%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; for the same periods in fiscal 2022, respectively. The increase in the three and six&#160;month periods ended July&#160;31, 2022 compared to the same periods in fiscal 2022 was primarily due to a change in tax rate and release in valuation allowances on tax losses carried forward during the comparative period. The remainder of the differences are due to normal course movements and non-material items.&lt;/span&gt;&lt;/p&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="3"
      id="Narr_XBE3ZiAfC0aMuH6IqKpx_A"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.278</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="3"
      id="Narr_-Q6Hk__Gw0GS6tbtZLj0vw"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.260</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="3"
      id="Narr_0Cj9MYf2oU68aSAEMxtG6w"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.105</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="3"
      id="Narr_FUnD0pBMQk23oliTdrJhng"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.153</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_aW_FMwbCekqA_wubaxWU7A">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;19&#160;&#x2013; Contract Balances, Performance Obligations and Contract Costs&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;"&gt;Deferred Revenue&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table presents the changes in the deferred revenue balance as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Deferred&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Revenue&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 58,700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Recognition of previously deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (24,236)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferral of revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 36,034&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increases from business combinations, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,035&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (4,240)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 68,293&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 66,547&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Long-term&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,746&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;"&gt;Performance Obligations&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;As of July&#160;31, 2022, approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$371.9&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million of revenue is expected to be recognized in the future related to performance obligations that are unsatisfied (or partially unsatisfied) at the end of the reporting period. We expect to recognize revenue on approximately &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;80%&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; of these remaining performance obligations over the next &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;24&#160;months&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; with the balance recognized thereafter.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;"&gt;Contract Assets&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table presents the changes in the contract assets balance as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contract&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Assets&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,443&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Transfers to trade receivables from contract assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (464)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,983&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (3)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,959&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;"&gt;Contract Costs&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Capitalized contract costs net of accumulated amortization is &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$17.3&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at July&#160;31, 2022 (&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$16.6&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million at January&#160;31, 2022). Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates. For the three and six&#160;month periods ended July&#160;31, 2022, the amount of amortization included in sales and marketing expenses was &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.4&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$2.8&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million, respectively, and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$1.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million and &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;$2.2&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; million for the same periods in fiscal 2022, respectively.&lt;/span&gt;&lt;/p&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Group_-nLeuYHrtEG1l3X6ndC-lA">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Deferred&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Revenue&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 58,700&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Recognition of previously deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (24,236)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferral of revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 36,034&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increases from business combinations, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,035&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (4,240)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 68,293&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 66,547&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Long-term&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,746&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Contract&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Assets&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at January 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,443&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Transfers to trade receivables from contract assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (464)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,983&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Effect of movements in foreign exchange&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (3)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Balance at July 31, 2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,959&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerLiability
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_FOOvr5jnT0OOrgfhKImHvw_3_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">58700000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_mW2eLkKO4kmYSIi2dQATIw_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-24236000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_Y41oOWf9SUKCCZXsFHcfog_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">36034000</dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue>
    <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_Vhs7AivRdk2s1CtxNn81NQ_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2035000</us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination>
    <dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_iyW7KDCrgUq5rHelGVF3HA_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-4240000</dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange>
    <us-gaap:ContractWithCustomerLiability
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_EDSCP09Oo02qXdl-QU48Sg_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">68293000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:DeferredRevenueCurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_QuWGHKia20O8QVwSeGVIsg_9_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">66547000</us-gaap:DeferredRevenueCurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_fPWx_Hy8g0i-tJp63KbYdQ_10_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1746000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Narr_I6mDGgx3GUmD14oUZJg_Ug"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">371900000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="2"
      id="Narr_2OQcmtvbXkCS4uAsP8UHbw"
      unitRef="Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ">0.80</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="As_Of_7_31_2022_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_dsgx_cnst_date_20240131_k2HD3LKap0ehF6JYckIKpQ"
      id="Narr_Lkjdtck08ESeXDUnpirXJQ">P24M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:ContractWithCustomerAssetNet
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_NGYpNnFPU06JJQXrSfnMVg_3_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1443000</us-gaap:ContractWithCustomerAssetNet>
    <us-gaap:ContractWithCustomerAssetReclassifiedToReceivable
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_0QZbIa6QiUmvs0aAelplkg_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">464000</us-gaap:ContractWithCustomerAssetReclassifiedToReceivable>
    <dsgx:ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_nJ4fts0LKEW4EHivKTTtTA_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1983000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet>
    <dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_bcrZbDYajUGIURFRqXT8XQ_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-3000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange>
    <us-gaap:ContractWithCustomerAssetNet
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_PIsWtRho0kamKGUFw_pvFQ_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2959000</us-gaap:ContractWithCustomerAssetNet>
    <us-gaap:CapitalizedContractCostNet
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-5"
      id="Narr_GotneHPPWE21Hbcs5hUgkQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">17300000</us-gaap:CapitalizedContractCostNet>
    <us-gaap:CapitalizedContractCostNet
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-5"
      id="Narr_lDI61rsf1k64-CoqrhyyvQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">16600000</us-gaap:CapitalizedContractCostNet>
    <us-gaap:CapitalizedContractCostAmortization
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-5"
      id="Narr_llBpLUGC3k-i9sHB_A0vNw"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1400000</us-gaap:CapitalizedContractCostAmortization>
    <us-gaap:CapitalizedContractCostAmortization
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-5"
      id="Narr_A0Gdis9hLUid1vMBoCdBfQ"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2800000</us-gaap:CapitalizedContractCostAmortization>
    <us-gaap:CapitalizedContractCostAmortization
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-5"
      id="Narr_wqyY6CH4kUW1V2KC0LYEPA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1200000</us-gaap:CapitalizedContractCostAmortization>
    <us-gaap:CapitalizedContractCostAmortization
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-5"
      id="Narr_ACZNJ34QFEybI_V-QcnUeA"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2200000</us-gaap:CapitalizedContractCostAmortization>
    <us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_3UlEyPcalUKTuJnZYC6WRg">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;20&#160;- Other Charges&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other charges are comprised of acquisition-related costs, contingent consideration adjustments and restructuring initiatives which have been undertaken from time to time under various restructuring plans. Acquisition-related costs primarily include advisory services, administrative costs and retention bonuses to employees joining by way of an acquisition, and collectively relate to completed and prospective acquisitions.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following tables shows the components of other charges as follows:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition-related costs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 923&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 391&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,648&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 908&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration adjustments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 355&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,059&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Restructuring plans&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 11&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 23&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 64&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,289&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 414&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,771&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 934&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock>
    <us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_-cwlNIuPHU2ORipgfUv4aw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.97%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.94%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Acquisition-related costs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 923&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 391&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,648&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 908&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Contingent consideration adjustments&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 355&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,059&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; &#x2014;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Restructuring plans&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 11&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 23&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 64&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 26&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 1,289&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.09%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 414&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.44%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,771&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 934&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_FxNml-j4JEehBsfn0PsZgA_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">923000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_2Prkk0hnxUWnuApqaEDFvQ_4_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">391000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_qq5OniyxCkKu6yIErDea1A_4_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1648000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_zYZfO7ETmEO6HMfsasXlLQ_4_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">908000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_2PC1FPD3tkmdTLML_0nPOQ_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">355000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_U4aLCE2yeUi5eI_LyEA1wA_5_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1059000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:RestructuringCharges
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_m7niIFL6r0yDoZ8vhhTdNQ_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">11000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_u02i6B2EcE-DdoWH-d2p7Q_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">23000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_Vld_OwelsUS0X1Olz-rkeg_6_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">64000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_V3Ot9-uAmEKbPjwRD95FTA_6_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">26000</us-gaap:RestructuringCharges>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_l6XHAo4TJ0eo-pdbOFy75g_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1289000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_NvJeq10Ex0yGmdBdfVstaA_7_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">414000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_Wa3iVACv-EanapSkvYzRTg_7_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2771000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:OtherCostAndExpenseOperating
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_BZMBYIZ9S0mdRZkTMTX9Lw_7_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">934000</us-gaap:OtherCostAndExpenseOperating>
    <us-gaap:CashFlowSupplementalDisclosuresTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_TB_mrQ1_F0S3bvSZGI5KgQ">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;21&#160;&#x2013; Supplemental Cash Flow Information&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following tables presents the cash flow changes in operating asset and liabilities:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.95%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.96%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,624)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 316&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (4,544)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,419&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,532&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 804&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,349&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,512&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Prepaid expenses and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (286)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (3,016)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 493&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (3,543)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Inventory&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (18)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (166)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 36&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (338)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accounts payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (293)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (94)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,135)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (214)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,783)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,379&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (3,862)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,467&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income taxes payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (296)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,295&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 127&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (308)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Operating leases&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (44)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (240)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (153)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,794&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,426&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,411&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,044&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 982&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,704&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 722&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,082&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:CashFlowSupplementalDisclosuresTextBlock>
    <us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_T73p-1ICBE6US29Zs3ZwHw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.95%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.96%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Trade accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,624)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 316&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (4,544)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,419&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Other accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,532&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 804&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,349&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,512&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Prepaid expenses and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (286)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (3,016)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 493&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (3,543)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Inventory&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (18)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (166)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 36&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (338)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accounts payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (293)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (94)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,135)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (214)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Accrued liabilities&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (1,783)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,379&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (3,862)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,467&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Income taxes payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (296)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,295&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 127&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (308)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Operating leases&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (44)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; (240)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; (153)&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Deferred revenue&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 2,794&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,426&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,411&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,044&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:57.97%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 982&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.28%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 5,704&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 722&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:8.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,082&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_Zk3wp6OHgEeVEBNWWNSYPA_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1624000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_zTwLXEts6Uq665vKiD4CHg_4_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-316000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_mmHrdMe7CEKF16LlTwgpnw_4_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4544000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_ZWeZvXVIUEyllN7VpgpZFA_4_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-1419000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_6UzLHmXWzkSI5RmnXbQhgw_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-2532000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_durDWLTezUWfUVKkm0gxBQ_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-804000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_crGjYSac7k-GsLxSrO-pLA_5_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-2349000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_3H9FGy9fzUWvyD1eBivYUw_5_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-2512000</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_FlLLK5XBtk-chUPgrTl1sg_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">286000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_IgrjcVmtiEGBccs2YjE9ZA_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3016000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_xh6VyZXV5kaAf7vh2Gd_5g_6_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-493000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_OPESB_KoRUWUfT91yRgSvg_6_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3543000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_qNTo1BcuaUeSMGL4W7l-Rw_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">18000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_evnA5h6nYUiSmqn63mYqAA_7_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">166000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_lWOK6DrZxE2eJ9H0YGUUqA_7_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-36000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_4S6B95rj-EKPH0QXMc8pIg_7_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">338000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_g21h0K11AUioBUOajHKvGg_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-293000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_ZTYurYBWzU-I0gMGlyuGPQ_8_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-94000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_gRhyqbXgnUyffxNm4f9keQ_8_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-1135000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_4nvZr8QgykiFSRbzfR9B3A_8_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-214000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_WToQrEjQukCHOftyCJwEqA_9_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-1783000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_nkdHS8pMh0iMySyt_pdiNw_9_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">5379000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_cyOfGIj_p0WAmvCWv4wwmg_9_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-3862000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_QJybRSBQPUmPjSDCXt4hHA_9_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4467000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInIncomeTaxes
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_Wru8ikJVn0-TOAELjDZb7A_10_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-296000</us-gaap:IncreaseDecreaseInIncomeTaxes>
    <us-gaap:IncreaseDecreaseInIncomeTaxes
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_F3w6kf2RdkSnUCMccPZrEg_10_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1295000</us-gaap:IncreaseDecreaseInIncomeTaxes>
    <us-gaap:IncreaseDecreaseInIncomeTaxes
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_HJmZaiUBnESZLnPRRBziig_10_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">127000</us-gaap:IncreaseDecreaseInIncomeTaxes>
    <us-gaap:IncreaseDecreaseInIncomeTaxes
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_1ve1-TwHXEi2Ydd2wrVxqQ_10_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-308000</us-gaap:IncreaseDecreaseInIncomeTaxes>
    <dsgx:IncreaseDecreaseInOperatingLeaseLiabilities
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_FzSalbXyNkanu283maL5eg_11_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-44000</dsgx:IncreaseDecreaseInOperatingLeaseLiabilities>
    <dsgx:IncreaseDecreaseInOperatingLeaseLiabilities
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_BxFYGNVeaUqeSMv67O6MXA_11_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-240000</dsgx:IncreaseDecreaseInOperatingLeaseLiabilities>
    <dsgx:IncreaseDecreaseInOperatingLeaseLiabilities
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_T3ORIG47iUaJ4-WfEQMY-A_11_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-153000</dsgx:IncreaseDecreaseInOperatingLeaseLiabilities>
    <dsgx:IncreaseDecreaseInOperatingLeaseLiabilities
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_2q2yW-ElS0mxIHA8KATqCw_11_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">43000</dsgx:IncreaseDecreaseInOperatingLeaseLiabilities>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_P1eUI_1530yuxUwCy_x58A_12_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2794000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_IyjryJKImU6FcE50nosBdQ_12_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1426000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_Q0Ql1UFPh0GINdaq0SSm5g_12_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">7411000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_YYcVLlqTSUie2uVGFceWEg_12_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4044000</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_HS9nlI0r0kapUmTRO8E6FQ_13_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-982000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_XpK-aqaEx0q7JyfG_iS4DA_13_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-5704000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_HB6v__XQF0GpZM852XWzIA_13_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-722000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:IncreaseDecreaseInOperatingCapital
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_XBXN_z933UGO1zWnrj3Tsw_13_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">-8082000</us-gaap:IncreaseDecreaseInOperatingCapital>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_s26KAivgC0aPuQ2MebXiXw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Note&#160;22&#160;- Segmented Information&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;We review our operating results, assess our performance, make decisions about resources, and generate discrete financial information at the single enterprise level. Accordingly, we have determined that we operate in &lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt;one&lt;/span&gt;&lt;span style="font-family:'Verdana';"&gt; reportable business segment providing logistics technology solutions. The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 78,569&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 59,086&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 147,633&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 114,343&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Europe, Middle-East and Africa&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 30,746&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 31,861&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 65,377&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 62,948&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 9,171&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,209&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 17,457&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 17,581&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Asia Pacific&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4,525&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,414&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,939&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,536&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 123,011&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 104,570&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 239,406&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 203,408&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Services&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 109,372&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 93,479&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 212,205&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 181,799&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Professional services and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 10,359&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,935&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 21,607&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 19,114&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;License&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,280&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,156&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,594&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,495&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 123,011&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 104,570&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 239,406&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 203,408&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;License revenues are derived from perpetual licenses granted to our customers to use our software products. Services revenues are comprised of ongoing transactional and/or subscription fees for use of our services and products by our customers and maintenance, which include revenues associated with maintenance and support of our services and products. Professional services and other revenues are comprised of professional services revenues from consulting, implementation and training services related to our services and products, hardware revenues and other revenues.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;The following table provides information by geographic area of operation for our long-lived assets. Long-lived assets represent property and equipment and intangible assets that are attributed to geographic areas.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total long-lived assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 145,327&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 102,649&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Europe, Middle-East and Africa&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 36,476&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43,922&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 74,569&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 84,943&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Asia Pacific&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,593&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,912&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 263,965&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 240,426&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:NumberOfReportableSegments
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="INF"
      id="Narr_AbdnJkQAjUGEuun3fC51ng"
      unitRef="Unit_Standard_segment_Utkw4iHSj0-_Y-UHchFxgQ">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_PSjn7L6KX06umyTtOPVXUw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 78,569&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 59,086&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 147,633&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 114,343&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Europe, Middle-East and Africa&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 30,746&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 31,861&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 65,377&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 62,948&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 9,171&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,209&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 17,457&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 17,581&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Asia Pacific&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 4,525&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 4,414&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 8,939&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,536&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 123,011&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 104,570&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 239,406&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 203,408&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_US_LM8UEWr-akK4uz9XAMOzEw"
      decimals="-3"
      id="Tc_1zPMIODMwkqAIXU_-779OQ_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">78569000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_US_rdpHPX8-RkG7V9SXI0qxcA"
      decimals="-3"
      id="Tc_xNG-4-tiqkSbBQcMo4mXLw_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">59086000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_US_wn0HajC2nkul8AtuYTpmEA"
      decimals="-3"
      id="Tc_Z-UEsjOxpECI_UwibCZ_1w_5_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">147633000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_US_XqbktfH3ZU6TXY2HllApHg"
      decimals="-3"
      id="Tc_8MO76Lsts06ITPZR9F5coA_5_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">114343000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_btaY4H9daEma1W8qLvthrQ"
      decimals="-3"
      id="Tc_RsOYpAVdW0OfX5rQUs0RuA_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">30746000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_nrWbupFMDkiD5GLPdJg2vQ"
      decimals="-3"
      id="Tc_oeKYFeTa_Uuy19-Ovg0zig_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">31861000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_xQV0g9YTjEWhiV6TK6Xs0Q"
      decimals="-3"
      id="Tc_yHamBE2Ar0iAzLxth_I0JA_6_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">65377000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_us-gaap_EMEAMember_rmXOAYu2RU-9ipiaM52qPQ"
      decimals="-3"
      id="Tc_sMFtlY7NBUK6hZX56bwuog_6_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">62948000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_CA_PCO3YgDJ10-7E7HGGWLnRw"
      decimals="-3"
      id="Tc_N7GhiTvZS06PDwIMZqre9w_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">9171000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_CA_zWrhy0zO8ESEDpZaYPzUVw"
      decimals="-3"
      id="Tc_kwYdZEr2BU-A8CLbR7u3oQ_7_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">9209000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_CA_GWK4x4v2CEO_XLZfGy4bag"
      decimals="-3"
      id="Tc_bJr51LCBKEePFEqCE3YIEQ_7_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">17457000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_country_CA_CPoxotEBkEWfPnuMEyPhGA"
      decimals="-3"
      id="Tc_jCoEo0izZkiiIP4S9d5Xqw_7_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">17581000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_vbX-BxKaYkulIK-ayneTqw"
      decimals="-3"
      id="Tc_ecefXNgKFUSzHUjVtbpzaw_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4525000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_PXEq-FoxX0GyI-x9c5j4sw"
      decimals="-3"
      id="Tc_PcL0Cp3mLkmkZ8agVEudRQ_8_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">4414000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_7aOIDzHHike5efYGK3u0Ng"
      decimals="-3"
      id="Tc_0uVYxlqHyEu5nn2amyZdCg_8_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">8939000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_7_31_2021_srt_StatementGeographicalAxis_srt_AsiaPacificMember_FL7r54afS0a9LIn9iwwnYQ"
      decimals="-3"
      id="Tc_3MqsOyrbaU6DGHI_t625mQ_8_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">8536000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_webuMjH8J0iIWbj4jlLryg_9_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">123011000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_4lPj0PTlekux2EiLXXVW8A_9_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">104570000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_MaDmyp1azUSPP7y5gd4gzA_9_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">239406000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_WrEQuqoQr0ePIhdu4pZsWg_9_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">203408000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_LCb6BKS_7EqrGZlX4KVsZw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Three&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:21.48%;border-bottom:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;Six&#160;Months&#160;Ended&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;July&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2021&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Services&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 109,372&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 93,479&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 212,205&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 181,799&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Professional services and other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 10,359&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 9,935&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 21,607&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 19,114&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;License&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 3,280&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 1,156&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 5,594&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 2,495&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:52.92%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 123,011&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 104,570&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 239,406&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 203,408&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_A7WtsFHS9kmXI4q2dGn2gA"
      decimals="-3"
      id="Tc_-8AdhG5lqk6YK1J0e0yW2Q_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">109372000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_ServiceMember_43sUi3ul-UOzGe1J9Gy58g"
      decimals="-3"
      id="Tc_dNW7NfdK3kCbZQOCCMx4bQ_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">93479000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_BikqrCJ3xEyS9Q-KDI86Ow"
      decimals="-3"
      id="Tc_tQIR0TusmU635L9esPK9Gg_5_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">212205000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_ServiceMember_jy6bqD3tY0GKq9Sx1SkZ_g"
      decimals="-3"
      id="Tc_gbM-DGFjo0y8BXSXrihfrg_5_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">181799000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_V25NG4_cvUWiicFrilzxtw"
      decimals="-3"
      id="Tc_P5ZSa40S2UOE0FTvWjcCgw_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">10359000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_6rNcHEtOs0i2BlhU3n3nEw"
      decimals="-3"
      id="Tc_pUPwmt5M90eFXaoGmdWuNg_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">9935000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_XqUNulpGiEyNd8I7oLR4OA"
      decimals="-3"
      id="Tc_OfASrptS-US2EsnHGBUFEQ_6_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">21607000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_dsgx_ProfessionalServicesAndOtherMember_3l-CMECCdkS3gfrkAOIktA"
      decimals="-3"
      id="Tc_qqYIQDtsMEGt1RUKO-LjTg_6_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">19114000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_LicenseMember_TB9HG7ofT0OWXw7So_cm1g"
      decimals="-3"
      id="Tc_ahvWa0JWsUSnvGR4ZqEhWw_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">3280000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_LicenseMember_3xas_FV3M0a4zfLl70egdg"
      decimals="-3"
      id="Tc_MBIJMyq0xk64kY9Xr7Y1Nw_7_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">1156000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_LicenseMember_Ku6UHMAKWkKcmy2Hmd9iHQ"
      decimals="-3"
      id="Tc_Sb_b01smD0GF4JWl236DRg_7_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">5594000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_7_31_2021_srt_ProductOrServiceAxis_us-gaap_LicenseMember_S3YLuvmZpEq_FkwndXvsfw"
      decimals="-3"
      id="Tc_3lAfAWcZPkigd6Qhutyqcw_7_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">2495000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg"
      decimals="-3"
      id="Tc_CZYAs2EojkeJyQ5rv6eb7Q_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">123011000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_5_1_2021_To_7_31_2021_PUM_jApcmEa2jeO1BJglCA"
      decimals="-3"
      id="Tc_96xLgqGHfki0B5O8YBj1GA_8_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">104570000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      decimals="-3"
      id="Tc_OdyW2DMioEiNTgITiOM_Fw_8_6"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">239406000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="Duration_2_1_2021_To_7_31_2021_3X9qLRzhEECp5Ye0THE7ew"
      decimals="-3"
      id="Tc_oO3ZSOY_Y0CXJzUXvS1y1Q_8_8"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">203408000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock
      contextRef="Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA"
      id="Tb_HysCodS68UWZeQq2fViZKw">&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"&gt;&lt;tr style="height:1pt;"&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"&gt;&lt;div style="bottom:0pt;position:absolute;width:100%;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-size:1pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&#160;&#160;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;July&#160;31,&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-top:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;January&#160;31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;2022&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';font-size:8pt;visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;2022&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Total long-lived assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;United States&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 145,327&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 102,649&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Europe, Middle-East and Africa&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 36,476&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 43,922&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Canada&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 74,569&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 84,943&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;Asia Pacific&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 7,593&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 8,912&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';visibility:hidden;"&gt;&#x200b;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt;&#160;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"&gt;&lt;b style="font-family:'Verdana';font-weight:bold;"&gt; 263,965&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:2.32%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"&gt;&lt;p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"&gt;&lt;span style="font-family:'Verdana';"&gt; 240,426&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_7_31_2022_srt_StatementGeographicalAxis_country_US_LbmGIhCiuk-iVF09MPnPkA"
      decimals="-3"
      id="Tc_dUX3A2aLWUig4E_QkXzrfw_4_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">145327000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_country_US_fucxjzVaIkGPSUNQyy_CLA"
      decimals="-3"
      id="Tc_dDHuOIJumEet0zuLk7ag-A_4_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">102649000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_7_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_Rgrvfe8BQkS-fShoh1IPng"
      decimals="-3"
      id="Tc_4oDLdpqhtUKmJVswkCbkYw_5_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">36476000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_us-gaap_EMEAMember_P1QjWkrs6EK3EhZe-wKx1A"
      decimals="-3"
      id="Tc_W_Ih8WpbmUuVtIDga0ytyQ_5_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">43922000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_7_31_2022_srt_StatementGeographicalAxis_country_CA_B2E8GQYrAU2BZJgGDS2jAA"
      decimals="-3"
      id="Tc_RUsrRNg1ZEmCoHheA11KSw_6_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">74569000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_country_CA_8XdYZkFfHUSnPuVREOILAw"
      decimals="-3"
      id="Tc_00RoAVcunUewFxLvtf4hug_6_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">84943000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_7_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_76rjKFE2NEGWTNevfob01w"
      decimals="-3"
      id="Tc_KRaKYCd7CEqk1zLyVC-QxQ_7_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">7593000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2022_srt_StatementGeographicalAxis_srt_AsiaPacificMember_XQ6JIHRYg0ytZMqjwOVMQw"
      decimals="-3"
      id="Tc_kEHUnEXvHUSNwSmmjCqfBw_7_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">8912000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw"
      decimals="-3"
      id="Tc_5MPW0Cu950CuovHdVCJQ7Q_8_2"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">263965000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ"
      decimals="-3"
      id="Tc_dOvbRbbUbkWc3Vkjs6YD5Q_8_4"
      unitRef="Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw">240426000</us-gaap:NoncurrentAssets>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>104
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
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
MKWN% C\(6N#)&W#"S\$]([W1'S3Z \?7^Q?];2HKVK"=UL[>6)4DA0DVPZ5
M[@'''S]T!_[G-LW_B>Q5!WI-!WI_8H\3411FGJK_>56?B"JU@PQ=T./+95L3
M*N:!8[;[8A^/PN%HU ^'D;<_%=@:V!\$7;\)?%5\V!0?_D7Q9ELI37A&^?8M
M!>%[%;0&MBGP3H;1+L*O1&XI5XC!QD#]SK"/D:R62^5H4;KY7 MMIMV9N=G'
M(&V >=\(H8^.'?EFP\>_ 5!+ P04    " "2C2=59IS[O^\&  !W(0  &
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
MIHQS5Q2=['#*?[CAZ:X\QGY*.4^WY>6&A2N6%0#Q^W,J7H2JFZ*!XW\M!O\
M4$L#!!0    ( )*-)U5E*KE'N0,  "0-   8    >&PO=V]R:W-H965T<R]S
M:&5E=#4N>&ULK5=K;^(X%/TK5K9:@333/ DI"T@MR6A8;6E5F-G/;F)(=A*;
MM<VC_WZODY#R<%DTPX<6VSGGV/<1WYO^AO$?(B5$HFV14S$P4BF7/=,4<4H*
M+&[9DE!X,F>\P!*F?&&*)2<X*4E%;CJ6Y9L%SJ@Q[)=KSWS89RN99Y0\<R16
M18'YVP/)V69@V,9NX25;I%(MF,/^$B_(E,AORV<.,[-12;*"4)$QBCB9#XQ[
MNQ<%"E\"OF=D(_;&2%GRRM@/-1DG \-2!R(YB:52P/"S)B.2YTH(CO%OK6DT
M6RKB_GBG_J6T'6QYQ8*,6/YWELAT8 0&2L@<KW+YPC9?26U/1^G%+!?E?[2I
ML9:!XI60K*C)<((BH]4OWM9^V". CI[@U 3GF.!]0'!K@GOI#EY-\"[=H5,3
M2M/-RO;2<2&6>-CG;(.X0H.:&I3>+]G@KXRJ/)E*#D\SX,GAZ&D21I-I%"(8
M39_^&H?W,YA,9_#S&$UF4_3T!1X]/K]$7P$W_AZA\03F$?J,ODU#U+IIHQN4
M431+V4I@FHB^*>%<2MV,ZS,\5&=P/CB#BQX9E:E $4U(HN&'Y_G^&;X)_FB<
MXNR<\N"<%?QSE=\BU_Z$',MQ-.<974ZW=>;\VN[13^]^X RWR1"WU'.OG2&Z
M1*BV\O1;J3NQ)Y8X)@,#+CU!^)H8P]]_LWWK#UT4KBD67E,LNI+80;R\)E[>
M.?7A!(K+F,:L(+H 5-Q.R54U9#UTG#L+TFR][UD-RK6[_B$J/$5YOF5W#U&1
M!F5W[MY1!T9V&B,[9Y/R2::$(S 2')BJJK4F< DIHU$K9T*T>SKC.]?,OFN*
MA=<4BZXD=A 8OPF,?S;[H'I#;:90NC@G-'Y#DF,J<EQU!<D_4-&@RY"?$(4T
M9?-=T"3>(K*%YD=  #F)V9KPM[8"M&Z"H(V@L,#(L6 (O1&"Z,,?)Z1\(+(M
M*E0%0$O",Y8(1%0A0' 3OC47*6JU;NR=D!WX[T("PP%V3*AD\TS$."]);5T6
M50[P]Q+ZLQ.<O$(:5->SK*-72(.R/<\Y@D6G,-<+'/TKU&TBU3T;J1F38"7[
MOQ=)YX'N11[0H#0>T*!T'CB%?>R!H/% <-8#EQ:MX/0VM.QC0T:G*+O3/;DS
M3U'NP6U867N*\CI6]^[(7'.O[2L(7Y3]MH!@KJBLZGNSVK3T]V4G>[3^8/=&
MMF8]A$^ JF-_EZ^^'QXQ7V14H)S,82OKM@MGY55/7DTD6Y9-YRN3T,*6PQ0^
M8PA7 '@^9TSN)FJ#YL-H^!]02P,$%     @ DHTG5>XCXOC% @  ,@@  !@
M  !X;"]W;W)K<VAE971S+W-H965T-BYX;6RM5FUOVC 0_BM65DVMU#4O4(88
M1"HD59D&185VG]WD(%D3F]GFI?]^9R=DM$U1M?$%^\[W//=BYX[NAHLGF0 H
MLLTS)GM6HM2R8]LR2B"G\H(O@>')G(N<*A3%PI9+ 30VH#RS/<=IV3E-F>5W
MC6XB_"Y?J2QE,!%$KO*<BN<^9'S3LUQKI[A+%XG2"MOO+ND"IJ#NEQ.!DEVQ
MQ&D.3*:<$0'SGG7E=L*FMC<&#RELY-Z>Z$P>.7_2PC#N68X."#*(E&:@N*QA
M %FFB3",WR6G5;G4P/W]COW:Y(ZY/%() Y[]3&.5]*RV16*8TU6F[OCF!LI\
M+C5?Q#-I?LFFM'4L$JVDXGD)Q@CRE!4KW99UV ,@3SW *P'>:T#S'4"C!#0^
MZJ%9 IH?]7!9 DSJ=I&[*5Q %?6[@F^(T-;(IC>F^@:-]4J9?B=3)? T19SR
M![?C(!Q/PX#@;GK[8QA<S5"8SG 9A>/9E-Q>X]%H<A?>H-WP(23#,<HA.9U0
M 4PEH-*(9O*,?"'WTX"<GIR1$Y(R,DOX2E(6RZZM,%#MSH[*H/I%4-X[037(
MB".S)"&+(:[!!X?QK0-X&PM45<G;5:GO'23\OLHN2,,])Y[C>37Q##X.=^O2
M^3_OX3][?U&,1O5D&H:O<>PG4_<0"E?->E>Z27;DDD;0L[ +2A!KL/S/G]R6
M\ZWN%HY)%AR3+#P2V8O[:E;WU3S$[F-#Q7;)L)L(_&"C9Z($93*C1:..?V&3
MP<:OSO&CC7@.1-$M@2T.(@GD5$#$UR">S^HNK_![:?SJ@;3VV^VNO=Z_DK<F
M[DN+X*V%Y[QB"6M8VJW*IJB*O=<$<Q +,WTDB?B*J>)Q5]IJP%V9OOY*WW<[
M [=&'^! +.;77_IBFHZH6*1,D@SFZ,JY^(J1BF)"%8+B2]."'[G"AFZV"0YU
M$-H S^><JYV@'51_$_P_4$L#!!0    ( )*-)U4A<+1X@08  #8J   8
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
MOZX(3DC5 -C?'TIVP'0/S7MZNU=%Y_\"4$L#!!0    ( )*-)U6[NX#ED0<
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
MT-Q4Q;9^G[\LJJK8U)=K&@MM) 'B_ZM":,3]C>S@\-')Y!]02P,$%     @
MDHTG59)&+RN%!   ^PD  !@   !X;"]W;W)K<VAE971S+W-H965T.2YX;6RM
M5MMN&S<0_96! @0)H)MEQS4L6T#L])(":8VXEV>*.ZLES"6W)->R\O4]PUVM
MY2 14* O$LF=.7/F2EYM?7B(%7.BI]JZ>#VJ4FHN9[.H*ZY5G/J&';Z4/M0J
M81LVL]@$5D56JNUL,9^?SVIEW&AUE<_NPNK*M\D:QW>!8EO7*NQNV/KM]>AD
MM#_X;#95DH/9ZJI1&[[G]&=S%[";#2B%J=E%XQT%+J]'[T\N;\Y$/@O\97@;
M#]8DGJR]?Y#-Q^)Z-!=";%DG05#X>^1;ME: 0..?'G,TF!3%P_4>_:?L.WQ9
MJ\BWWOYMBE1=CRY&5'"I6IL^^^TOW/OS3O"TMS'_TK:374!8MS'YNE<&@]JX
M[E\]]7$X4+B8?T=AT2LL,N_.4&;Y026UN@I^2T&D@2:+[&K6!CGC)"GW*>"K
M@5Y:?>"H@VERA'Q)J6*Z:2.$8KR:)1@0L9GNP6XZL,5WP,[IDW>IBO2C*[AX
MJ3\#L8'=8L_N9G$4\-?63NGT9$R+^6)Q!.]T\/8TXYW^/]YV8&??!I-VN8R-
MTGP]0C]$#H\\6KU^=7(^7QZA>C90/3N&_E^I'@?[S2>F$YK0$53Z QOYKD+B
M2/>[F+B.]'/P;4,?G9[2F]>O+A:+^7(0RON3Y9CZ#[>^;I3;?7WLV] ?D0_[
MPRWW9V_)1%+4!/]H"@Y":V/]6EFR?F-B,CI28ETYC_V.HK>MT(]3NLWMP2%2
M&YE@A6I?M%:%,:3*M%6!)RI.U$1R8S0/#MPK=3]85ZZ@ JWSC$S)$[Q.#!P,
M04!BE8+2#UFX9A7;P.A]BX$2=IA-$<8UQR4U5KDQ*6N]5@BYB/,3:V!1K$R#
M:98@%91@J[8P*8LT:B?X+C8^))638]RC-QE2:2W9$3GEE-U]X7U\H%)PYKX4
M#JR"KCH\#C*N>X&D@BG+SL\V[4@KJQ&E[.J22F.Y'S2=D0BZP4"N\+K-A E@
M9&HA%WN7\GJ9-QI)MPP'':01MD@>914.LH?4B@LHJO4.O@8<F@;VW09N(O7(
MV ;QP"BS:NT1'(25:HQ5,T%"7Q0"C-6M [LI_8Y\-P%0@($8VWT)Q5P*>BB.
MK4D5E9:?S-I8<0Q&&^2K4E%T1?@Y]6PR>;DO<%&MAVX9=PE2^2X!)40$46XX
MM<(/F7(H05P/)@[,Y))#Z$!$*AR(N0QA\:M4[RL_TAME4+L(EG(YM"FTJ#EQ
M+KX='T1A7\\'FL9IBWH2],J$8B)AWKW,02<ZIC+DJTJRBA;)ZCF/?0VL@W_
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
M8B1\^A*8'J)K^>O;TD7D//_<8/!6GC;@_<KAAI(?2$'_.?;L_U!+ P04
M" "2C2=5YQ*NK:@+  "P*0  &0   'AL+W=O<FMS:&5E=',O<VAE970Q,2YX
M;6SM6OEOV\82_E<6:E#8 "/STI7#@.TD/="D?G'2OE]7Y$K:/I*K+I>6W;_^
M?;/+2ZID.W'Z4CP4$$1RSYG9F6\.\L5&Z?^4*R$,N\FSHGPY6!FS?G9R4B8K
MD?-RJ-:B0,]"Z9P;/.KE2;G6@J=V4IZ=A+X_/LFY+ :G+VS;I3Y]H2J3R4)<
M:E96><[U[;G(U.;E(!@T#>_E<F6HX>3TQ9HOQ94P']>7&D\G[2JIS$512E4P
M+18O!V?!L_.8QML!OTBQ*7OWC#B9*_4?>O@A?3GPB2"1B<30"AR7:W$ALHP6
M AF_UVL.VBUI8O^^6?V-Y1V\S'DI+E3VJTS-ZN5@.F"I6/ J,^_5YGM1\S.B
M]1*5E?:?;=S8(!JPI"J-RNO)H""7A;ORFUH.O0E3_\"$L)X06KK=1I;*5]SP
MTQ=:;9BFT5B-;BRK=C:(DP4=RI71Z)689T[/DM\K64J24/GBQ&!%:C])ZMGG
M;G9X8/:8O56%697L=9&*='O^"2AIR0D;<L[#.Q?\L<J&+ H\%OIA>,=Z4<M>
M9->+/I,]-SO>/YL,XEFYYHEX.8#&ET)?B\'IM]\$8__Y';3%+6WQ7:O?2]O=
ML]\I(UC$OOUF&@;!<]9?C+V19<(SDF&TW?%SP=Z(N:Y@?FSFA.RQ5P*CM1$E
M3 1CM4@9SS*F%LRL!"M7'*S3TSMA+KX_]]A//UVP(]HW])^[-OL0/#_V&&=K
MK:YE*C3-</I;LH4$]4M6JJQR=,C"KOWQ:L@^X+JN=+*":6&R3 0#U-ANWI'.
M-ASDK;'XC80IBNR6/8FFPPE,(LO0[[$" $9;\G+5\N&QS4HF*SMY49&*LH56
MN1N$15>\P)AU5I5L#7$61D)J:Z$MUA6)>$KVGK($.@[ZT4^W)7''+5'8KUHS
MH]B3L3_T&UJ8FX4;)QV0LY+BFB2@Q;4HJF9=P_52&,CV6CB&%U*7AIF-8K>"
M:R*J-$][4G#26G"IV37/*M&<T2$"2\NY'8HS->Q)$ UG+9EHV)5R"M&Z399:
ME:5=6 ,X*\B%YZHJK(S1E KPD@AYS>=97W%HOR?^,&@WV4B#\]BA>6M$309M
M37U;[/Y<Z3_1QT1IK [8X^X1:$]U 2]3LD(9)F[60'X2LV)SDE&6N6>BL5#
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
M"IQM->S.::V@O;F_I[E:P^D]! _H>>SU?8W301A[831!*AEY03AF83SR@E'
MPC#T1M/05NKJDCA:9K,I1G@1+O'8&X&>./*F_I2]=M\!T"L@[;PP.X>))<P?
MAA/ZF^%O-**_D+V2<*"08=,WI>:8_EK^]GV^==+[B@[)\M)^*T@X#6AV']2U
MK>WGB&?N*[QNN/N6\2T\DH1B96*!J8BI1@.FW?>![L&HM?TF;ZX,<B1[NQ+D
MTVD ^N'U3?- &[0?:9[^%U!+ P04    " "2C2=55O'WQ6 (  !/%P  &0
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
MDG1+'J^:/R)/".B46&+K='QR-& V7M_&%V_J<&6Z,-Z;*CR6 J=R2P3XOC1
M]_1" KH[].O_ E!+ P04    " "2C2=5"!&S+4X#  !)"   &0   'AL+W=O
M<FMS:&5E=',O<VAE970Q,RYX;6RM5FEOVS ,_2N$=Z %LOA(G*5M$J#I-FS#
M-A3=]5FQZ5B8+'F2G'3_?I2<.,?:8 /V)=9!/KXG2F0F:Z5_F!+1PGTEI)D&
MI;7U91B:K,2*F;ZJ4=).H73%+$WU,C2U1I9[ITJ$212-PHIQ&<PF?NU6SR:J
ML8)+O-5@FJIB^M<<A5I/@SC8+MSQ96G=0CB;U&R)G]%^K6\US<(.)><52L.5
M!(W%-+B.+^=#9^\-OG%<F[TQ."4+I7ZXR;M\&D2.$ K,K$-@]%GA#0KA@(C&
MSPUFT(5TCOOC+?H;KYVT+)C!&R6^\]R6TV <0(X%:X2]4^NWN-&3.KQ,">-_
M8=W:)J, LL9856V<B4'%9?ME]YMSV',81X\X)!N'Q/-N WF6KYAELXE6:]#.
MFM#<P$OUWD2.2Y>4SU;3+B<_._NB68YPG66JD=; '6;(5VPA<!):@G=&8;:!
MFK=0R2-0(_BHI"T-O)8YYH?^(='JN"5;;O/D).#[1O1A$/<@B9+D!-Z@TSKP
M>(/_H;6%&CX,Y9[*I:E9AM. WH)!O<)@]OQ)/(JN3A ==D2'I]#_C>AIJ$_*
M(J3P_,DXB>,K>!396T2#JW_^4I)^^22]9[*A9^W'QT8N@8>3E@C;$M$[(FG4
M&X\N8#CHI:,4/J QEW"KU8K[.D!E"#*-.;<@E#%HX"SN7:2C<_<=CZ+S+LQP
MW+N(!S",>R^CM%M])S/1T/4$+A^,SC1"(Q=<"++9K1MG;TO:KYP+J *>1OT+
M>I%"^.)B@-G=67B)9\XD/3;9.R5G==Z'3PH,ETL*WKYWU%MF1,'IK121LB63
M$$?/7&A/Y 'R"R:8S-"%(JM#-DSF?P3OPQ="*I2@TDP,P'H4?Z$=L@N34=CE
M3GY](A$4M86BA/WM[=DE]GC'X=^T^,=;']IX\ZW:/T\5_%V FT9K4@(U:J[R
M(_)X7U-GH"/>T$\&"7S7W.(+513&"==+VF5+ZFS&'JD_B^/A.;PN"H)P9UVI
M%5;^T+A'IV8@*4)[>G!&>3Z@>Y 9?W^WXAZJ'N%>>:?;L?1-C!BZ_+>5OEOM
M^N1UVQYVYFV3_4BB2 X(+,@UZK], ]!MXVHG5M6^62R4I:OHAR7U>M3.@/8+
M105E,W$!NG\/L]]02P,$%     @ DHTG53NTBQ'8 @  [P8  !D   !X;"]W
M;W)K<VAE971S+W-H965T,30N>&ULI57;;MLP#/T5PAN*#<CB:Y->D@!MMV$K
MT*YHL>U9L9E8JRRYDIRT?S]*3MRDEZ##7FR1XCF\2*1&2Z5O38EHX;X2THR#
MTMKZ* Q-7F+%3%_5*&EGIG3%+(EZ'II:(RL\J!)A$D6#L&)<!I.1UUWIR4@U
M5G")5QI,4U5,/YRB4,MQ$ =KQ36?E]8IPLFH9G.\0?NSOM(DA1U+P2N4ABL)
M&F?CX"0^.LV<O3?XQ7%I-M;@,IDJ=>N$[\4XB%Q *#"WCH'1;X%G*(0CHC#N
M5IQ!Y](!-]=K]J\^=\IER@R>*?&;%[8<!P<!%#ACC;#7:OD-5_GL.[Y<">._
ML&QMX\, \L985:W %$'%9?MG]ZLZ;  .HE< R0J0^+A;1S[*S\RRR4BK)6AG
M36QNX5/U: J.2W<H-U;3+B><G?RP)6JXQASY@DT%FE%HB=9MAOF*XK2E2%ZA
M&,"%DK8T\$466&SC0PJGBRE9QW2:["0\;T0?TK@'290D._C2+L?4\Z5OS;'_
M4I(M1_8RA^N-(U.S',<!77Z#>H'!9.]=/(B.=T28=1%FN]C?=@J[*2Z511C
MWKN#)(Z/X1FCWXG2XW_^TVD\^-,X9[*AOO7KIT;NI+:%2QHHKB&YG$/.:FZ9
M %;\H1M-+6T--?0Z-)AI55%[WC7<<->J!H89I-'A*@F]D40<]])L '':&PX&
MG4/29DD$<=:+AON=]CF:RUPT!6[I- IFL0"KP#"G8+* QB!8=H^FYS"JZB2I
MY">KV1,.!\FI!S3-&&#&(,U).+&/I7,5Z<'[J!]3#POAQM$')Z:=R(C%;I78
M83Z"F@&E ?)_JLG]OEJ@WC"H5.. )8J"<@0TN;^SC]5P;NFFU^CGYA9C_Z4K
M'VX,H0KUW(]:0W4A/^T\ZK3=-#]IA]BC>?L47# ]YQ2XP!E!H_YP/P#=CM=6
ML*KV(VVJ+ U(ORSI14+M#&A_IJ@;5H)ST+UQD[]02P,$%     @ DHTG5>=J
M4W2] @  *@8  !D   !X;"]W;W)K<VAE971S+W-H965T,34N>&ULG57?3^,P
M#/Y7K"+Q-*U=-WX(MDF,.W0@<4*@NWO.&F^-2)->G*[COS\GW<J08 _W,);8
M_CY_]F(S;:U[I1+1P[;2AF9)Z7U]E:94E%@)&MH:#7M6UE7"\]6M4ZH="AE!
ME4[S+#M/*Z%,,I]&VY.;3VWCM3+XY(":JA+N;8':MK-DE.P-SVI=^F!(Y]-:
MK/$%_:_ZR?$M[5FDJM"0L@8<KF;)S>AJ,0GQ,>"WPI8.SA J65K[&B[W<I9D
M01!J+'Q@$/RUP5O4.A"QC+\[SJ1/&8"'YSW[7:R=:UD*PENK_RCIRUERF8#$
ME6BT?[;M#]S5<Q;X"JLI_H6VBQV-$R@:\K;:@5E!I4SW+;:[/AP +K,O /D.
MD$?=7:*H\IOP8CYUM@47HIDM'&*I$<WBE D_RHMW[%6,\_-[LT'CK7N;II[I
M@C$M=M!%!\V_@)[#HS6^)/AN),J/^)1E]%KRO99%?I3PH=%#&(\&D&=Y?H1O
MW-<VCGSC_ZFM@TX^AX91N*):%#A+^*T3N@TF\].3T7EV?438I!<V.<9^7-AQ
MZ$_K$2[@].0R'XVNH6>"&P_<O[>^?R",A =A&AZUWC@ U0,4 9^40P85MJJ=
M(I1@5[!21O&#DK"V5M([8@AW7WB P3S2*C+QO)*G0%0*)UOA,$KA/,(SM!:.
MO;Q-H+)+I=E)Q+NG,8K-)6H9?20T<CX^+:TOP9?('X<=%:DM@_GI08U.!248
M7N#'^@<15#N[47&!!%;<%D@LS8%=DM7(K=S7H)!88F%=(%*&ZR ?:G#(_H:=
MK2 PEB=0Z$'L%Q<FP=N]$63CE%G'K"0J[+7%CE+!$4'6\+/GDQ[,;X5N';<4
M<9;&^&Z4>VN_"&^Z^7\/[[;HHW!K90@TKAB:#2_.$G#=9NHNWM9Q&W!?>;?$
M8\G+'%T(8/_*\@O;74*"_M_#_!]02P,$%     @ DHTG53?XJH3? @  Z@8
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
M4WY"7O2N9 =7%ME9P?>MO( !BR%+L^R,WJ /;1#T!K\16L<<_IKI"^'*-KS
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
MSBRK/8UX!$>''(@M*ZVB=K.9/SW$9ZG]7RPH!UR%W4TD@X<]<EV'6"NFGJ8
M+D0+G5WN0!YY#PJCAZ!_E(S2/H17NTO9NNG&R<83NJ0I5%:T<1F+#B8M0SL/
M;>V>AC#:=T^.MYXL)8$D_#!#S;E$[>NEW^W??E?MD^=1O'TX?@7'F"^:%E!-
M1F_QU'+M8ZQ=!%O%!]#<!A I?A9XOY)C 9PO+&[1;L$.^A?Q]%]02P,$%
M  @ DHTG5<,?Q95%!   )@P  !D   !X;"]W;W)K<VAE971S+W-H965T,C$N
M>&UL[5=M;]LV$/XK!Q4M.L"U]6;93FP#3;9B&YHF2-(5^TA+9XNH)*HD%2?_
M?G>D[3@O]3*LV*=]$8_DW<,[W@M/T[727TV):.&VKAHS"TIKVZ/!P.0EUL+T
M58L-[2R5KH6EJ5X-3*M1%$ZHK@9Q&&:#6L@FF$_=VH6>3U5G*]G@A0;3U;70
M=R=8J?4LB(+MPJ5<E987!O-I*U9XA?9S>Z%I-MBA%++&QDC5@,;E+'@?'9VD
MS.\8_I"X-GLTL"4+I;[RY+=B%H2L$%:86T80--S@*585 Y$:WS:8P>Y(%MRG
MM^@?G.UDRT(8/%75%UG8<A:, RAP*;K*7JKUK[BQ9\AXN:J,^\+:\T9) 'EG
MK*HWPJ1!+1L_BMO-/>P)C,/O",0;@=CI[0]R6OXLK)A/M5J#9FY"8\*9ZJ1)
M.=FP4ZZLIEU)<G;^$<DD,QU8PN*50;Z1._%R\7?D,CA3C2T-_-(46#R4'Y .
M.T7BK2(G\4' W[NJ#TG4@SB,XP-XR<ZPQ.$E_]@P+Y<^+\=)<&1:D>,LH"@W
MJ&\PF+]Y%67A\0&MTIU6Z2'T UH=EOND+$*4P)M7XSB*CL'CP!>$4MP@4(YJ
M866S@LIO4+;"HI-506NF!S=8RKRB==$4D*NZ[2QJP&^=;"G!;!_..[T5=8 :
M.:$9D!AK VH)70M6P0CN4&@#/3"J1EY?$W0)LLFKKF!-.-D,L^*M13K.EKBO
ME8<9;F#Z<$W;K)%J2!%WT"-C"(<J$(UKU B"42HJ)>;(74:8'/_P\;K4B _B
M&Z[D[<.%QS(4OG<N?'?$W^]L1X[X_4GT@IU_.YX_NN1<&0M1+QR-Z1O1J7$O
M2A/ZQM$0KDJE[3N.A ?<PQ"&Q#*90#0*X5I943UQW@8WCAWN:$B(:<KHR7BX
M4^:J:]L*.1()(1>FA"5YF&+*/SJ^_E?"TKU3[#P)]C4%Q?]Q\:/CPOF!GG%V
M!5VN5O73F]]D?4$$U+34:>=%SF+O_DJ*A:RDE<1,_D\Y"I+AF.,J2^D[S$+X
M1$_WY?EG<J%!K@ +2Z7'8^)M7HIFA:YR>$2UJ.1*^"+#<3I.$DC2C-&SZ/F(
M^J_CZ-ZSHNFHTWF1<V,JYMQ!D&Y4@#4U1'M%V)ON$O"M*YP_0=R?0-)/GDH5
MTN2J(R>0<0AO7S,K)5S__G+.A.VT]\DSY7;?98]*+I,DL;./U7[Y-=V'UI^N
M]ON$>>Z.-J_;I;._H)>*#J6SN!R%8<)D"DDO22=,<DGA&D1D!I/8$2-(PC$3
M8_?BT1-$#>N2W[R("IRO5-[:5MS5[N&9],(LHY,-.5ZZ!Y(CD$20"EB2/93:
M#\)Q+YN,X;33FB,_Z65A"A]5L_+U<M@+)^G6L.<:B,%>[U:C7KD.U8!SH6_C
M=JN[)OB][_WNV7T'?2;T2I)&%2Y)-.R/A@%HWY7ZB56MZP07RE)?Z<B2&GG4
MS$#[2T5MQF;"!^Q^#>9_ 5!+ P04    " "2C2=5 V074\<)   1&0  &0
M 'AL+W=O<FMS:&5E=',O<VAE970R,BYX;6RU6?US&[<1_5<PC"?3SE"D1,NR
M8DN:D>0T=CM.-993]U?<'8Y$A#M< )SHZU_?MPO<!ZF/.,UT)H[)([#8??OV
M[>)\MK7NSF^4"N)K96I_/MN$T+Q9+GV^497T"]NH&K^4UE4RX*M;+WWCE"QX
M4V66J\/#DV4E=3V[..-G-^[BS+;!Z%K=..';JI*NNU+&;L]G1[/^P2>]W@1Z
ML+PX:^1:W:KP2W/C\&TY6"ETI6JO;2V<*L]GET=OKHYI/2_XEU9;/_DL*)+,
MVCOZ\J$XGQV20\JH/) %B;_NU;4RA@S!C=^2S=EP)&V<?NZM_XUC1RR9].K:
MFB^Z")OSV>E,%*J4K0F?[/:]2O&\(GNY-9[_+[9Q[?%J)O+6!UNES?"@TG7\
M6WY-.$PVG!X^L6&5-JS8[W@0>_E.!GEQYNQ6.%H-:_2!0^7=<$[7E)3;X/"K
MQKYP<6VK2@>@'/Q<7-LZZ'JMZEPK+V1=B)]:Z60=E/)GRX#C:-,R3Z:OHNG5
M$Z9/Q$?8VWCQ8UVH8G?_$FX.OJYZ7Z]6SQK\>VL6XN717*P.5ZMG[+T<8G_)
M]E[^/V*/IH\?-TVE],8W,E?G,]2*5^Y>S2Z^_^[HY/#M,XX?#XX?/V?]SSG^
MO.F?;5#BZ%@<B&\^9+I27'K4A,^=SE0A="W8WDH$*\)&"=D6.N"'W-;>&EU(
M^E+J6L*N-,('/(AV(#><9MC(35M$8[9-#R_KNL7Z3ZJQ+LS%5@G2GX _5)'*
M.:SW&^F4:&L=Q%^^_^YTM3I\^^[V%_YT]/:O'$,N_>; JQ ,UB--P>D\/+[U
M^M-D;V-D'5TDCPKM(#'615Q4U1C; 98%O.Q$([L84"4+)9K6^1:H)3R\2J;H
MN-X/Q$!^+0141\#C:);.1QX(1/++BWNX*^R]<B) )'D-_6BTS+31H4,\N5W7
M^C\P*0-^[\0:^E?O8I])G)_C<&X ](R4EB33"UN;#C:MGQX9K86-3*OYTT;>
M*U';(#H8R10.>1 ,>.';?,.YVD@8J6%TZN)Z[=2:+(X1$, QX'3R+AK"EN+%
MX>('R*(QK/#XY<71XJA_,*><-HIUWW1S<AP2T@T2LA"?R;H!@ \/EF/RZ*"]
MHS71'(VQX)]K=C,X6:!&1 ,6*=I#Y,A1&_B=&05*?+8PZ@+(#C]L60(G7J:^
M-M:W8 &(49HV#ZVDIN5[UJ,/Y'?1<H(0B.-LY1AD[%*_M>1ZH9R^EQ0Q)1HN
MY52^L8C(N=)8295\X"CDM GQ;J4K/*=I'Z4A90].2%5Z>C1_?7(JWJ'L$1J>
M[L3,H$G";P_@W]G'R:/<P&F @-:'+!E1 [ !K'%%Z6PE\HV$1'G"D#'C*F;,
M%GL"]D7%DFNS7T$/VB#%O71:A8X3AW0B=4;J*OKO6^(_<QVK4!!\'A<>53+]
MK2,)K /,F&X0#&I]H$'6>@BM]Y%R5() $\XH9G&4 I 0^8QB0,7$C:,.AB#'
M#T! 9D;!5)@/IS6 !9#!1B5K#%%,5UD&<A^')'2V.FR$07D9<@MGFZ0D/?7'
MZFN@US7Q<Y(MD)W\R5OH*ON#!"@62@3/3)3D/'B!;:HL"5(;>1LSQ$%BCG2)
MU,C^*/K(I:;'"W'C; 'JBR_246NA1'V(<=8T@)DIIH,QIF?C[+V&OG+%\=!$
M0'+833*Z'8TZ9;@&^JX$6SS=UF/9@CH%=J#8O"T#?8H\0",'G6(AD_Z-Q4@(
M(:& -Q;E $AN/0"0^"^A06>0%@J;&;U.D)#UP8[,<]>2*$*#^C0,CD?8'QA(
M0H&L0Y/\M_38A;A*K*3*R[ BSLF@0FK"'^I>07M<9 X1B/GBI/[#<M<%VG-Q
MN]'-9PC.W5S\!!/U1VV S\\J7+^_XOC^?7,[%VU#[K\X>O5Z<3HH=VH3 *U#
M_X WBK27Z:Y+D2O'K=TI]*]V-U]!NK4*L6@J:$,JC+"U:$;2D4097#PXVS2
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
M)PT_,=Z=^^BD4V=LM5,>AFTA*NN8BS3"&N(-YB411L*T8M,0VR(S_(['\%N
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
MT8;!7'#("I*X'OM*&;K#RB@P]=BM3).6\G<S".K!$P")"O5@])IG93>QVP(
M!/GND%JZ>NX;%GBV'[( HLX8<Z'4?*S@HD:]]G'DV6&\HS#D@ ]=GA^?&J1>
M9(=M1PL@/!74<IRXOA5%ODD:^K83-?>F&ATP:BNU(6]D^P'H$!EC?FRH]-K7
MKV7M L0V2R96M!]4X,I)U&GL2#@ ^3QHL@U9(CN"/8(==EW9!D%;XM,F,PZ4
MG9V6\+FE'LJ[UW:X5&MLOZWW9JV%)T&7U+.=9L L@&:Q!=&-8KM=N&Z%I.,O
MC,H[;/JH?59=_+V]^]*";_K7[&4?Q]3'T77[NH.D3T;679RN@>0YZ KV;*'U
M/:[W"W8XKX.M7<H78FL<QU;HFTGNAW8<09*;8R$F>6V0(<#"T#6>1H"6+;49
M<"L*M13:)$3D(6PD3+P.0SMJYQV$SJ$;6I[?R?.A#1OM$'+#$,+_08#S!Q#W
M*&Q&4!@#XU3B#?9T@0^P:<)Z$-JM"@B;O$F=;>B4HFK*5(F1A*\P=(:[WVWB
M$]WAE62%PMBF[2A,PJZA:OD & %@RR<*3UHZ:IS"6J#:IEA!%TO'%&,\3H&]
MGTAQ*SM^(% K=[@0@E/J)BDO<>-,Q-56;IOUD9VL]UH[V=?9O+K@LD<VKZ3Q
M*^U9TVJ_&K9VV*XV(U@)G$C',X>*S>C_Q>95B\WH'U-L M>QA@,3!F%/Z<9;
MT.@[ #VU02)HN,-.L8%^N^WO#A:-((;VWS<G^K[M!;!49\PSFL._LVC\ .(>
M+1I^&%IXQFYX+D#/^?:P.];6D']FT1CM%HW12XH&M#@_6LUX],!SM%LSGGT>
M7A<.F[VO7PNTA8'>UZ'AMN/-,H(B;\#R/3D"CZW 4;!ITFF2+CF]_YFD8 1=
MR/)5G#=PK1A:RQ/FA9[EN.[>-PM6&X3( D^[FQ#C22*Q9\U2/BY/P&!]/#H,
MS7<7<.\??7D!6A\^M=Q_<.M!EQS&I:[FH6SIKJZCD"L0&E)"<)1O?8KR54F=
M*D>2I'JM-*Z0M/R< D]ES0#9"5(S1DE6(PA?NF'VS%="Y0&YO[_AV-H^^\9N
MF2;Z1L?VA(/J[6[FAJOYV9W0.H,%]K8V502;[<W6(28:_ 91A=ZGO'*[\_2F
M9;LY.=R*[+8>32?1Z33V]17'.HE.[W"L2_!@?^(-F&ML.6''&0SJ@DK15#D%
MW^R!D]C)$/8T_JEY5!<'IX?; _#UP!]2 _U46W\RD/@)[+X9N%RFXDX*51E<
MFE5R#:7WH41PBE,AUY"T?5R34K@$#<H[2J^"R @>R"9;+VL?AS/'J$T[*M&K
MV<$CZ'80NCL5KI6C7;_.QE5>V;2T0OF&IGT?1BAK9O5>,?8C(V7=WPR-E6]?
M#QMW#A.=]LCP*#8Z9JDJ)T8OP,9]WP?UC4^Y%D+.Z(,U!6*L<EU^U=6,-M_$
M796?@K7DY0=U?W Y@PZ096(*4QT[#GM,EA^IE3>Z6-*'8="8Z&)!/^>" ^ B
M 3R?%H6N;W"!YDO!R_\!4$L#!!0    ( )*-)U4.<1B/"P,  /T&   9
M>&PO=V]R:W-H965T<R]S:&5E=#(V+GAM;)U5[T_;,!#]5TZ9F#8)DC3] 6)M
M)<HVC4E,"-CVV4TNC85C9[;;E/]^9SO-R@1EVI?$OMQ[?F?[7J:MT@^F0K2P
MK84TLZBRMCE/$I-76#,3JP8E?2F5KIFEJ5XEIM'("@^J19*EZ22I&9?1?.IC
M-WH^56LKN,0;#69=UTP_+E"H=A8-HEW@EJ\JZP+)?-JP%=ZA_=[<:)HE/4O!
M:Y2&*PD:RUET,3A?C%R^3_C!L35[8W"5+)5Z<).K8A:E3A *S*UC8/3:X"4*
MX8A(QJ^.,^J7=,#]\8[]LZ^=:EDR@Y=*_.2%K6;1600%EFPM[*UJOV!7S]CQ
MY4H8_X0VY Y&$>1K8U7=@4E!S65XLVVW#WN L_0%0-8!,J\[+.15?F26S:=:
MM:!=-K&Y@2_5HTD<E^Y0[JRFKYQP=GXE<U4CW+,MFFEBB='%D[Q#+P(Z>P$]
M@6LE;67@DRRP>(I/2$DO)]O)660'";^N10S#P3%D:98=X!OVY0T]W_ ?RHN?
MJR_ 1\_#74><FX;E.(OHRAO4&XSF;]\,)NF' ^)&O;C1(?97]_XP^INR"(,S
M.(%]'KBO$+ LT=]VL&P+FEF*OVLKGE? #5C*:+3:<-]8U-?  X'U!+AUI1HL
M@!E@T*#.45IJ4%#E+G.)!,,GN/?0(H6RT_CL")@L()O$Z9&G=PO:2B/ZN.%;
MJ-VM<=1<%;2BNSQ 1__8'_TQ-;QI0A'B\=@#!VD\#M2#<3S\0VT8:=AQ<:J(
MFYR)9VABOSDDFMS+N,'_* ,JN6&:PE:]MCRTM(6-YF1WG"B*-3H0@[QB<A4$
M=.?CU]?D59VP#1-K%FQ+D&\RF=/)J) O%)V.@9QIS4D&;4/+=$'LFLN5EQ0D
M,G\#@K)0ND9GTP5J=Y0NL>!T4S1Z=JIIIU ZOQ-$L]8DIU8;)!NVQHN42IZ0
M&1(K97"+]=]]%5HAV;.D&O7*&Z]QE-(&=^JCO;=?!$O[DQY^#-=,K[@T(+ D
M:!J?CB/0P6S#Q*K&&]Q26;)+/ZSH_X3:)=#W4E&K=!.W0/_'F_\&4$L#!!0
M   ( )*-)U6Z<Q&QX 0  *X,   9    >&PO=V]R:W-H965T<R]S:&5E=#(W
M+GAM;+U7VV[<-A#]%4)) QM0M;I97COV K:3H F:UG#2YIDKC59$*%(EJ5TG
M7]\A*<GR;=LB0%^\(CF7,V<NI,]V4GW5#8 AMRT7^CQHC.E.%PM=-M!2'<D.
M!)[44K74X%)M%KI30"NGU/)%&L?%HJ5,!*LSMW>M5F>R-YP)N%9$]VU+U;=+
MX')W'B3!N''#-HVQ&XO564<W\ G,']VUPM5BLE*Q%H1F4A %]7EPD9Q>YE;>
M"?S)8*=GW\1&LI;RJUV\K\Z#V ("#J6Q%BC^;.$*.+>&$,9?@\U@<FD5Y]^C
M]7<N=HQE335<2?Z%5:8Y#Y8!J:"F/3<W<O<+#/$<67NEY-K])3LO6V0!*7MM
M9#LH(X*6"?]+;P<>9@K+^!F%=%!('6[OR*%\0PU=G2FY(\I*HS7[X4)UV@B.
M"9N43T;A*4,]L[J2PBBDAEQ23D4).B37H%RR<45^7W.VH98_3:BHR"1^);71
M9PN#$*RA13FXN_3NTF?<%>0C6F@T>2LJJ.[K+Q#ZA#\=\5^F>PU^Z'E$LB0D
M:9RF>^QE$Q^9LY?]7WQX=_G3[FS+G>J.EG >8$]I4%L(5J]>)$7\>D\P^11,
MOL_ZCP43/17-?G^_20,D.2&O7BS3)'E-?L@_>0,U* 45N8$MB![(YP9(+3G.
M$28VQ- U!^)8$RAM\+!LJ-B )DRX934:4(.!M8=!J![LZ%.'-<Y>_^/OA.;A
MP8CN<C1NR <J>IQP4UV2HV5X',<H6LJ-8&X<R=IBWS+9:_[M,=2#- _3K#@<
M_%)N%<;#K CC+"?O18ES6&/ M9(M6?<:\Z$U*66[9L(3&Q*!DSU%^2/RMJYQ
M%EI#K=Q"ZVA#JC ?.+L$@5O/'SE UWE\>"^BGL_"*99A>I*1JQXA"T.*(CS*
MC\FO4FQ^-J!:DH3'>3$1]%S*+[2%<L]R2&C7*7G+<-P"[K_,CI/H!.<>YP-G
M(P5,(]X.PT'.C"1KP!-'[G?<&/)?]Z97]H#30:R;09$S**;!&"G*]D+CEJX9
MRA](13JJ#*,<H<Q.#BTCU@%@T2(F^ZF@DRB*=8D^F*PB\@4&A-;Q!&X*P-Y(
M]V)=QC\-QK25LA?J8.Y)R)A!Y3P+N,4$YYA3-UAWS#1N?RSV&2^XC0538XZB
MNV:[T!JP$/YK<Y6C/O7Z/]);$Y:'!P.V?:V5A'F>D<^*"HV-HBW9:*MR<0/;
MVCB&_GB(^" O\L-9$R%RBEH:[_-YI<WXJWKER,'P?99]=Z$P;67OB!IP*%]O
MCY$DX<DR^_>=F.WIPC0\.3IYS*$?GE>T8X9R!WL*O'1'(^2R[-O>MP;"Q^+]
M[DK+MM;+Y#C*IK9[Y/D !8JHN"?P("^'T3X(MM4&G_Y0,VWL*)FJMZ,&R]2U
M_,BI(]16GGL5X1KI<AL;*2M_@]@+E.$]8T5W#2N]+9?O80SHB+P;U$RC +P:
MN_7M,Z15V\Y&8 ]FD[/E$CVD?,:9*'E?^=&CJ4VTM8O/W*_@AH*=!,(6V8Y:
M=J/\CCN4>YE&RW$CM"5HQP8^5OFWT)\G4?I0X6YCI$'3%J8 ;#4Q7>*]X;'/
MC49//2T6LS<DDKMQ+V5[EV"X_CDY[4Z/\0O_!KT3]R_YCU1M&(XH#C6JQM'Q
M44"4?QW[A9&=>Y&NI<%,NL\&_Z$ 907PO);XD!@6UL'T+\KJ;U!+ P04
M" "2C2=56-PD+U,#   @"   &0   'AL+W=O<FMS:&5E=',O<VAE970R."YX
M;6RM5MMRVC 0_94==R9/%-\(@0282=)VVLZDS22]/ M[P6IDR95D'/Z^*]FX
MT":D#WU!6FG/V;.R5LNL4?K!%(@6'DLAS3PHK*W.P]!D!9;,#%6%DG962I?,
MDJG7H:DTLMR#2A$F430.2\9EL)CYM5N]F*G:"B[Q5H.IRY+I[14*U<R#.-@M
MW/%U8=U"N)A5;(WW:+]6MYJLL&?)>8G2<"5!XVH>7,;G5R/G[QV^<6S,WAQ<
M)DNE'ISQ(9\'D1.$ C/K&!@-&[Q&(1P1R?C9<09]2 ?<G^_8W_G<*9<E,WBM
MQ'>>VV(>3 +(<<5J8>]4\QZ[?$X=7Z:$\;_0M+ZT#%EMK"H[,"DHN6Q']MB=
MPQY@$CT#2#I XG6W@;S*-\RRQ4RK!K3S)C8W\:EZ-(GCTGV4>ZMIEQ/.+C[;
M C5<%TROT<Q"2Y1N(\PZ^%4+3YZ!C^%&25L8>"MSS _Q(4GI]20[/5?)4<*/
MM1A"&@\@B9+D"%_:YY=ZOO1?\AL^E6"+'SV-=S5Q;BJ6X3R@2V]0;S!8G+R*
MQ]'%$76C7MWH&/O+IW\<_DE9I(."UW! U%E99S&-D*FRTMQ@#FI%E?"SYH:[
MJGBM43!+RYDRU@QHD);+-4KKIH;GJ%E;/?D/NHQ4C98(94[U:*RN,UMK<@<N
MB8VY^C+0%#PKH& ;A"6BA)INAK;L@:8KK4JP5--@53OZ3=@PS55M_B"M!)-F
M")?/J07*B!X2+K84/Q-UCJ1RPXW26W ?BF=(&;&<JH83KY?7(=L,+&7C<ELJ
M61M23J*PK(3:(AD_%,%(Q7(+#=OZ8Y/[)S?P)%1^_GW9(*EHU3D:=]P"G5+G
M5&EEJM9KGX%R^U(@K(A"-2Z494M!D4VA&A)3M%]-27_F%%\=?E73(<TYG+R:
M)%%Z\=_'+X5&/*APN.>/APM_8JB M[Z ^\G+.[O1U?R^$1_9>?Y:3),4TFD,
M\6 \FL TFL#UO]SJ]/341XB3"X)&I]/>NOO[6D(< X49CR 9][KB03*9PBBF
MQ<'960S3=+3;>^JM"/=>[1+IH[K>9$AA+6W[@/>K??N[;%_]W^YM[[RA.\%)
ME< 50:/A&74;W?:CUK"J\CU@J2QU%#\MJ(6C=@ZTOU+TE'2&"]#_*5C\ E!+
M P04    " "2C2=5*,)$I5(#  #@!P  &0   'AL+W=O<FMS:&5E=',O<VAE
M970R.2YX;6RM56%OVS80_2L'%2@<0(@DBI;DQ#:0I"O6 5V#)ML^T]+9(BJ)
M&DG'SK_?D;(U>TA=8.@7D4?>>_?NCB+G.Z6_F1K1PKYM.K,(:FO[FR@R98VM
M,->JQXYVUDJWPI*I-Y'I-8K*@]HF8G&<1:V07;"<^[5'O9RKK6UDAX\:S+9M
MA7Z]QT;M%D$2'!>^RDUMW4*TG/=B@T]H_^@?-5G1R%+)%CLC50<:UXO@+KFY
MY\[?._PI<6=.YN R62GUS1F?JD40.T'88&D=@Z#A!1^P:1P1R?C[P!F,(1WP
M='YD_^ASIUQ6PN"#:OZ2E:T701% A6NQ;>Q7M?L5#_E,'5^I&N._L!M\TVD
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
MGBVR&9GI7V-Z<7KPY_N5=NAG_]CB]TP:%L!^K7$<W+ZP@?T/W]4_4$L#!!0
M   ( )*-)U5[DN!I'P@  !X6   9    >&PO=V]R:W-H965T<R]S:&5E=#,Q
M+GAM;*U8:V_<MA+]*\06*!)@ZWW83MWX :R=I$UPBQAQW'[F2MQ=)A*ID)0W
M[J^_9X:D)-MKI\F]'Q*O*'(>9V;.#'6RM>ZSWR@5Q->Z,OYTM FA>3F9^&*C
M:NGW;*,,WJRLJV7 HUM/?..4+/E074WFT^F+22VU&9V=\-JE.SNQ;:BT49=.
M^+:NI;L]5Y7=GHYFH[SP0:\W@18F9R>-7*LK%:Z;2X>G22>EU+4R7ELCG%J=
MCA:SE^>'M)\W_*75U@]^"_)D:>UG>GA;GHZF9)"J5!%(@L2?&W6AJHH$P8PO
M2>:H4TD'A[^S]#?L.WQ92J\N;/6W+L/F='0T$J5:R;8*'^SV#Y7\80,+6WG^
M7VSCWH/Y2!2M#[9.AV%!K4W\*[\F' 8'CJ:/')BG W.V.RIB*U_)(,].G-T*
M1[LAC7ZPJWP:QFE#0;D*#F\USH6S<^FU%W8E+IWRR@3)6#V[M)4NM/+/3R8!
M6FCOI$@2SZ/$^2,27X@_K0D;+UZ;4I5WST]@76?B/)MX/G]2X+NVVA/[L[&8
M3^?S)^3M=R[OL[S][W%YEY]1S,%N,50M+WTC"W4Z:DB0NU&CLY]_FKV8'C]A
MY$%GY,%3TO^]D4^+^;A12/S"UHTTM]JL16MD6^J@2E%8Q,?X^,LCWJ6DY94V
MTA1:5L)#J4+]!2^D4Z*)AF"+-N+:L(PKVN+%LY]_.IK/I\?75_QC=OQ<E+:J
MI,-)4^;3#?[R83+(E="BD.QA(];**">KZI;>J(8$TY;6!+*X<1KV-!7TX&R
M0]=7G<;?%XO+3B?IHO>NI<WTY-2ZK1@ZQI)>7D@C2RV-N%)%ZW1 DHM%B<K2
M/C@9;+(9.@8;:.7UUV(CS1H2;%UKSZR4S;AZ?=%9 :)D1='C6$_0W<.M :+3
M]4ZD]\2"P8'CU>V8Y'CU@S$KK3 V0%M1M26RH*HR!-I$,F=6A&?8!A^=^M)J
MBA Y0!E3Z3Y$A#._D,:TT+/;]H]L[L &O[%M58HE8H*&0?&#W9]:$QF9)=L6
M0I-[2?BW?7LJFSI3R=65]@6.WBKIA"(^$N\D=+C;CE#8ZA^$& V$N@MC*\M/
M8&M>'XOM1A<;ROMQSEG;(,-B)M3(P#5+& NC"N4]V</@BI74+E=:ESIX1(_Q
MG5,Y@1K\;TO?5V;TY5[B_2\YE'+"#VP6P>+ILQ+*!UUS^7.->[3U)E9:V$A@
MLEH1-&2OK*F625IC72*0\,.@YRJ_0VN<PE0\@1(H U9P]I4:ICBQ<K9.8-PU
MG2DCG0!>F'=<HHS=@.>LINI"9I/%NE0Q&TM=2!HSAF$#8-BFOC; (Y47IV9;
M]8E)/MS+S/T830PU%<,",FP52R-13BO*>"G6E5W"90!1JEJC)ZB*L<,^TA)'
MM8[\WO_U]M4OL]_$C78M>)O6$H5=)@&9QZ+VO"HVTN,?@>E=V["+BB/L8U4C
MP$Y'BH[)S^IB@!*D"H61\5ZUH457T'A?A(Z;.VV<43@8(21P%!"P]"H>X9Z"
M!K-6Z!JM^6SL-G*9DXTNL:9N;'6#@\@)'V/XB*J,+ -+AU"SCZ>V7&*PS=:K
MFV%"HG S(@6(+"9'J9 Y:"X(")-3H5S I!QN\RE0B'4J%QJQ->)%A?"I+=>4
M\#$.=_#BL2#;#S)-,@G^F/$1-B9'X?7:Z!72$J6;CYN4\ZD<<WU"+'Q51&#@
M_J6NN/F-L1&. B$RF7(/A9I[L5==K)*)WRS@/71267,_)X5]H[^+>O8_T4DM
M;PG/Z $D+V_OAC&UN;%8MC$Y* "5KG6LA>/."8=, B(4SC&+TXYI#;:LK2VW
MFKC<<)=&M]?+2B50>+5Q]D;[CAP0+!"8J"QVP+'WZ&7#C@."JJE,/4'^1BT=
MU_<,8) Z)5$FO(^!-25OZUD@;>-RP31EMP02[7^@*#><AS(BD\!1;E;*N<@,
M,M9$*GV,.8X@&$A,+##.6](K$G;_U6!- )+6DYD>R*,\B;W*! R(Z$9;L,YN
MPV'80\OGW[!\E\S'39_O,'W^3=.I2(?RXS3,-E%LNU24#2:F0E+"<%!+#(\0
MU[/AO5D$LG&O1$%Q,0QM.L@VL1*?J3Q-1ZD)[6X:!QW#9N\Q7X%WOF 3F(CR
MZ7$%>=,CHB,3#?ED.*6G"R- C T^3B'T*M+$]UXWP&L\;I>Y<5L(0?<I4&S]
M")$Z#/DS^_6XRP,*[+^?)@FRC41'6RIE8AR3F;@38 ?:"65>53V<N'H:_ [_
M]IZX'QYV]\/#)R]V'S XLF6XB;3W+TQHE=066-FN.^/_2;1X:\3[(M@E<@:(
MS_B^(MXLKL[ST45_%%=%4TJ4E+AN"!H^\<OTJ$O\<RH_#,,4TR50BPWWV4=,
MSH4XFAX^?SD41^Q[@=;MJ*$M>H+NUO[3=["80?F-CYWX@K^M(/MS+>2[W.+J
M.MO6ST*#Q=@#2HA=MSK>.T!<&X0/29*ZRS^Q+=9HY=0399&N5D6V;M!2JON&
MYDY5= 9S(U]F?(H>G[N&@2KC!$+3V>"REK)VG/O:G<L#@<%);+UZ<&"IUMH8
MPENNB!E>(35J"O?L,/-SY#=NF^C/]EX'[ 7T[2_V)/&LK]4#(/Q:.OH 4%J>
MM,B7AB:GT%UK\C 9.S3M@]%Z$(5$"2OMT#@'A#?0$R5U2KB[WA'A>6[H9G5$
ME(E!"AI,')5Q/T.1K[OO#8 ^,55+EZ>=]3X9?+-#&J[YRZ2/DW3\?->M=A\_
M%_&;7[\]?CG]$W.PAMI*K7!TNO<KZMO%KY'Q(=B&OP N;4#.\\\-;@7*T0:\
M7UE<G](#*>@^"9_]%U!+ P04    " "2C2=5OCS![/($  #Z#   &0   'AL
M+W=O<FMS:&5E=',O<VAE970S,BYX;6RU5WMOVS80_RH'=R@<@(LE4I*E-#$0
MIZ\-:! TV>-?6J(MKI3HDE2<[-/O2-FJ$WA>@*Z (9+'N^,]?CR>SS?:?+&U
M$ X>&M7:BU'MW/IL,K%E+1IN3_5:M+BSU*;A#I=F-;%K(W@5A!HUH5&431HN
MV]'L/-!NS.Q<=T[)5MP8L%W3</,X%TIO+D;Q:$?X+%>U\X3)['S-5^)6N-_6
M-P97DT%+)1O16JE;,&)Y,;J,S^:9YP\,OTNQL7MS\)XLM/[B%[]4%Z/(&R24
M*)W7P'&X%U="*:\(S?BZU3D:CO2"^_.=]O?!=_1EP:VXTNH/6;GZ8I2/H!)+
MWBGW66\^BJT_J==7:F7#%S9;WF@$96>=;K;":$$CVW[D#]LXO$2 ;@5HL+L_
M*%CYECL^.S=Z \9SHS8_":X&:31.MCXIM\[@KD0Y-[LLOW;22A\A"^,[OE#"
MGIQ/'*KV#)-RJV;>JZ'_HB:#3[IUM85W;26JI_(3-&FPB^[LFM.C"G_MU"FP
MF "-*#VBCPU^LJ"/O<#/0^[UTLEA:7\SSNR:E^)BA-"WPMR+T>SUJSB+WARQ
M+1EL2XYIG]WB3:LZ)4 O =4KB7G&"P+KSI0U(@Z)LA3 E=(E#UC&RPB+SJ(>
M:X5%:*-SYGG<>\>.'_WZ54XC]@;^[_%:N*N/<WBO'YS1#OZ\N84[[;B"FZ<^
ME9@.60D3W#J#*VYK @A!"R5.!\?P^BON<'1ZIWH,/V5I#B=D.&0,UU+!"?"V
M"@<B!R,%HTAB.<FR!!)":0Y93*(B@SC"W3R'*P2N;%>B=4^M@1CWDSRX%-,W
M4)"$ID 985/FC0CE!@71TK7TKO'J+[RO6+"<A35_]%<)TABF">0H6*31$)V4
MHCD,S6$1A6E,6(+FT)RP.(;+/LO!5PQ(9XRWC&.>G24@'DK55?VI^_%)L@)R
MAN8%#QE)T>V=K))\(15"'Y$R9MGT!,9QXC\D*>(PYE-Z F_%4I@^UO>B[<3@
M^)BQ#-DHB6D4QB3%M8^ X^U*>C=[\V"\=]2))W8-ZHO1R21/_4$L9ZAA6J#\
M+A;O92N=0".7 F3[7./.P;/O1N15J*7" %\9(?HL>:0$9/FJ4,NU15M)$460
M8;)R$N,L+HA?O'N0UJ,$G"CK5BN]>H0XZ3E(ED18IDB$"Y:2*:[N#*\$M+S!
MD"/N=I$,[+B^UNW/I6[6POD;@-'FWIII%'WC#-IBXFD?M*XV4BF@&9D64Z2F
M= H))ID6'CUYREZ"K".%*AT*5?KB0C5 [T#2C("%\-'BC39._HU<Z*4!5PMI
M0& DFX#PSHIEIS#W]^)@43YNS0^L52\$"X-'P<W^)-Y.#N$EV^X]'_?!0K>T
MZ\GEM_E!M*1[G-OYD0QG0X:SHS&=;Q^5/KW]>PGX6QL-H0/$=/>=(&X<2MEQ
M]3_JN;FK,4U/6A"XE0]/"<]EL,-X#!W&,/GOG=WHFY+]1?R"G>\=/V_+<DSQ
M&6-8!O!]BFD&-$E)C.\,I92D.0V%6;8(&($D4A0Y<A"&0Y)AQ8A]X<BC'-YQ
MTR) \:E"F-O:W]DYM[*$Z!2K"WX*_*2I_U!X*U7G+^QN+_?DQ'\.EI7)7C^*
MMV@5NFY\TG77NKXU':A#8W_9][/?V/M_!9^X64EL3958HFAT.L6:8/I.NU\X
MO0[=[4([O+)A6N.?$V$\ ^XOM7:[A3]@^+LS^P=02P,$%     @ DHTG537^
M$FQ4 P  B D  !D   !X;"]W;W)K<VAE971S+W-H965T,S,N>&ULQ59M;]LV
M$/XK!Q4H%L"(WN*7.+:!V$NQ%@L0-%GWF99.%E&*5$G*3O[]CM3+W,+U%B##
MONA$\N[A<W<\'A<'I;^:$M'"<R6D60:EM?4\#$U68L7,I:I1TDJA=,4L#?4N
M-+5&EGNC2H1)%$W"BG$9K!9^[D&O%JJQ@DM\T&":JF+Z98U"'99!'/03G_FN
MM&XB7"UJML-'M'_4#YI&X8"2\PJEX4J"QF(9W,;S]=CI>X4O' _FZ!^<)UNE
MOKK!QWP91(X0"LRL0V D]KA!(1P0T?C680;#EL[P^+]'_^!])U^VS.!&B3]Y
M;LME, L@QX(UPGY6A]^P\\<3S)0P_@N'5G<Z"2!KC%559TP,*BY;R9Z[.!P9
MS**?&"2=0>)YMQMYEK\RRU8+K0Z@G3:AN1_OJK<F<ERZI#Q:3:N<[.SJ ^,:
MOC#1(-PC,XU&BK@U\,L3VPHT%XO0TBY.-\PZQ'6+F/P$<0+W2MK2P)W,,?_>
M/B1V \6DI[A.S@)^:L0EI/$(DBA)SN"E@\NIQTM?Y_(I3UN@J]- KE[FIF89
M+@,J"(-ZC\'J_;MX$MV<H7DUT+PZA[YZI/K+&X&@"BBX9#+C3 "7QNJFS5'5
MLL^!62B<4WOOE*^6K-&:RYT[L?RD:^<W?_]NED3I#;RU_!WW*"#N9-+)%)Z4
M)>=NC4%KYG#WK>'VA8I+\SUS50L9'2E-%6P\4IS<0!R-DG1Z:O@F/#G;<L$M
M1Z*SH<TIEA1SQ\-PXL7\E=)OWLMD.AI/KWO18SV5"(42=/VYA%A75V!*=3!@
M:66CJIK)%P\QO3&O3C7[,=G C#LRGYALZ)8="F?^YKG\3W(ZFZ2GAO]?3N-D
M='T==>),68^'LA[_Z[+.2D84#&7Z.*G5/UQ*Y_%?E[44UDS0>4-WL'X\,KWO
M'V5&_=[0*=:JHCY*F33<!<M DH[2:0H;9DJHV4O7.RAQXWAZ 9N2:>>?+;5J
M=J2A5<$M* U"&0/Q:):F<%<4U*%=."JU[[J/"XC2U%$EX',;)8<:77Q'MQ%'
M7-NB.Y6@\*@[5DB$W!O 4-H;:=M&.<P.SXS;MKO^K=Z^4>[)'RI+$%B0:70Y
MI5SHMN^W ZMJWVNWRE+G]K\E/950.P5:+Y2R_<!M,#R^5G\!4$L#!!0    (
M )*-)U5J5RQHZ0(  &0'   9    >&PO=V]R:W-H965T<R]S:&5E=#,T+GAM
M;)55;6_:,!#^*U8J52"QY@5"*85(A6W:JE9";;=^-LF%6$WLS':@_?<[.Y!"
M!5'[)7Z[>^ZYY^+S9"/DB\H -'DM<JZF3J9U.79=%6=04'4A2N!XD@I94(U+
MN7)5*8$FUJG(W<#SAFY!&7>BB=U;R&@B*ITS#@M)5%445+[-(!>;J>,[NXT'
MMLJTV7"C24E7\ CZ3[F0N'(;E(05P!43G$A(I\Z-/YZ%QMX:_&6P47MS8C)9
M"O%B%K^3J>,90I!#K T"Q6$-<\AS X0T_FTQG2:D<=R?[]!_VMPQER55,!?Y
M,TMT-G5&#DD@I56N'\3F%VSSL01CD2O[)9O:-L2(<:6T*+;.N"X8KT?ZNM5A
MSV'DG7 (M@Z!Y5T'LBR_4TVCB10;(HTUHIF)3=5Z(SG&35$>M<13AGXZ>I(T
M 7(3QZ+B6I$'B(&MZ3('TGDR@^I.7(UQC+4;;S%G-69P G-([@77F2(_> +)
MH;^+_!J2P8[D+&@%O*WR"]+W>R3P@J %K]\DW;=X_:\F?2S7&FIP',K<F;$J
M:0Q3!R^% KD&)SH_\X?>=0O104-TT(8>/>(=3"HLADB)MJ3ICK1L)=T.>WXV
M"KS^-?GJB'5XLW6XI;S"*VSG'XU,C0X73Z>8D]#KC8979-#OA<.0W(%28[*0
M8LWLG<>60V()"=,D%TJ!(AV_=Q4.NV8<#;UN$V8PZEWY?3+P>Y=>V*)[V.@>
M?EKW.*-\A;$9)^5I:L>*T![CLZ*_Z_'QQ)"8UR0^'MW5>LUH3GF,VNN#DMFJ
M6 G)O)(2N"8E2":2#QG":XG-$Y*=_$$_(,^2:?@FTE099>0*3^D*F[_21&>P
M!]#Q_4&7_$A3A# Z%F(-V,VU51+1L5]RC%#+2SI!T#V@N_O5MERQ[,?JZNYU
MO@*0C>GOR,S\:743;':;)^2F[ISOYO7[<X_)8!HDAQ1=O8M++)^L>WJ]T**T
M?70I-'9E.\WP&01I#/ \%4+O%B9 \[!&_P%02P,$%     @ DHTG57MYX9Q=
M @  ?P4  !D   !X;"]W;W)K<VAE971S+W-H965T,S4N>&ULE51M3]LP$/XK
MIR"A3:J:5UH&;23*-@TD1E7V\ME-+HV'$P?;H?#O=W;:4%"IMB^U[WS/X^><
M/C=92W6O2T0#3Y6H]=0KC6G.?%]G)59,#V6#-9T44E7,4*A6OFX4LMR!*N%'
M03#R*\9K+YVXW%RE$]D:P6N<*]!M53'U/$,AUU,O]+:)!5^5QB;\=-*P%=ZA
M^=G,%45^SY+S"FO-90T*BZEW$9[-$EOO"GYQ7.N=/=A.EE+>V^ JGWJ!%80"
M,V,9&"V/>(E"6"*2\;#A]/HK+7!WOV7_ZGJG7I9,XZ44OWENRJEWZD&.!6N%
M6<CU-]ST<V+Y,BFT^X5U5QL''F2M-K+:@$E!Q>MN94^;=]@!G+X'B#: R.GN
M+G(J/S/#THF2:U"VFMCLQK7JT"2.U_:CW!E%IYQP)KTU)2I88(;\D2T%:OCP
MPZT?)[XA?EOE9QNN6<<5O<,U@AM9FU+#ESK'_#7>)UV]N&@K;A8=)+QNQ1#B
M< !1$$4'^.*^V=CQQ?_:['!?DQU'LI_#FN1,-RS#J4<NT*@>T4N/C\)1<'Y
M8=(K3 ZQIW=DNKP5"+( Z=2J%[7[Q!ZF.SXZC8+X'/YWI8=_=@]_S>J6O.KV
M;XOL1WD=?*<A8DW(ZQ5DK.&&"6#Y'_H7DXV-WND%"B4KLN1#RS6W]M0P3B .
M/L'MVZXA# =Q,H(P'HQ'H_Y"RB91 &$R",8G^U[>WS%%A6KEK*\ADVUM.G_T
MV7ZZ7'2F>BGO1M,-4RM.$@46! V&XQ,/5&?W+C"R<19;2D.&==N2)B0J6T#G
MA91F&]@+^IF;_@502P,$%     @ DHTG5:WV6R+H @  T08  !D   !X;"]W
M;W)K<VAE971S+W-H965T,S8N>&ULE55K;YLP%/TK%I6J34(%S"-)FR E7:>M
M6J>HW>.S Y> :C"U3=/^^UV;A*93DZU?_.*>XW-LW\MT(^2]*@$T>:IYHV9.
MJ75[[GDJ*Z%FZDRTT."70LB::9S*M:=:"2RWH)I[U/<3KV95XZ13N[:4Z51T
MFE<-+"5175TS^;P +C8S)W!V"[?5NM1FP4NG+5O#'>B?[5+BS!M8\JJ&1E6B
M(1**F3,/SA>1B;<!ORK8J+TQ,4Y60MR;R==\YOA&$'#(M&%@V#W")7!NB%#&
MPY;3&;8TP/WQCOVS]8Y>5DS!I>"_JUR7,V?LD!P*UG%]*S9?8.LG-GR9X,JV
M9-/'AK%#LDYI46_!J*"NFKYG3]MSV .,_0, N@50J[O?R*K\Q#1+IU)LB#31
MR&8&UJI%H[BJ,9=RIR5^K1"GTZ7$^Y7ZF; F)U</7=7BB6ORX0=;<5 ?IY[&
M34RHEVT)%STA/4"8D!O1Z%*1JR:'_#7>0W&#0KI3N*!'":\[?D;"P"74I_0(
M7S@X#BU?^"[';QGM>:*W>4RVG*N693!S,!T4R$=PTM.3(/$OCJB,!I71,?;T
M#K,O[S@049!V7S$<4WR<\_1D3/WP@KRWQQMXMC=PS9H.,]>._PXRM_-Z<BF4
MQJ9N.PWR1;=UH42A-TP"B:@;QR&)?'<2CLCG3C:5[G#=!!75DQDK$K@)G6!K
M(K\!YF I>$ZJ&@_F$0RG"?%I1,:X[<LCKAJE&>>08T[I<IM-("W?V#=M&).Y
M4H#X#E^K))E B.SZ@A$E$Q(CZ<Y4-'+#."91[$:C@,RSK*L[SC32YX O(*N8
MA?W+<4C1C6_.,$G\PXY#&F!+X]$AQ_$D('$8_)_?B(:&S4\&-V'L3M!-&+E)
M')'O6/X##//Q6'QW'(S>>L+>7IE!WK4MI@H/K6MT7W&&U:%>S_LR]1+>%_L;
M)M<HEW H$.J?C; \RKZ ]A,M6ENT5D*C"3LL\9\#T@3@]T((O9N8#8:_6/H'
M4$L#!!0    ( )*-)U5BIQ21[@(  (\&   9    >&PO=V]R:W-H965T<R]S
M:&5E=#,W+GAM;)5576_4.A#]*Z,@H8MDFL3Y+KLKM04$2*"*<KG/;C*;1"1V
ML)UNX=<S3G9#>[5=P4OLL6?.G.-XQJN=TM],@VCAON^D67N-M<.Y[YNRP5Z8
M,S6@I)VMTKVP9.K:-X-&44U!?>?S($C]7K32VZRFM6N]6:G1=JW$:PUF['NA
M?UQBIW9K+_0."Y_;NK%NP=^L!E'C#=I_AVM-EK^@5&V/TK1*@L;MVKL(SR]C
MYS\Y?&UQ9Q[,P2FY5>J;,]Y7:R]PA+##TCH$0<,=7F'7.2"B\7V/Z2TI7>##
M^0'][:2=M-P*@U>J^Z^M;+/V<@\JW(JQLY_5[AWN]20.KU2=F;ZPFWUYX4$Y
M&JOZ?3 QZ%LYC^)^?PX/ O+@B0"^#^ 3[SG1Q/*UL&*STFH'VGD3FIM,4J=H
M(M=*]U-NK*;=EN+LYKVT0M;M;8=P80Q: _]\$629%RO?$K[S\LL]UN6,Q9_
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
M\=L2ISIH%X#G*Z7LWG 7=/\3V2]02P,$%     @ DHTG55!0QF=  P  = <
M !D   !X;"]W;W)K<VAE971S+W-H965T-#4N>&ULK55M;]LX#/XK@@<,*6#4
MMBR_=4F MKOA=L"P8NEMGQ6;B87)EB?)3?KO1]F)+SED.>"P+Q8ID0\?DA(]
MWRG]W=0 ENP;V9J%5UO;W06!*6MHN+E5';1XLE&ZX195O0U,IX%7@U,C QJ&
M:=!PT7K+^;#WI)=SU5LI6GC2Q/1-P_7K TBU6WB1=]SX(K:U=1O!<M[Q+:S
M_MT]:=2"":42#;1&J)9HV"R\^^CN@3G[P>"K@)TYD8G+9*W4=Z=\K!9>Z B!
MA-(Z!([+"SR"E X(:?PX8'I32.=X*A_1/PRY8RYK;N!1R6^BLO7"RSU2P8;W
MTGY1NS_AD$_B\$HES? EN]$V33Q2]L:JYN",#!K1CBO?'^IPXI"'OW"@!P<Z
M\!X##2S?<\N7<ZUV1#MK1'/"D.K@C>1$ZYJRLAI/!?K9Y:KO.@E89<LE>>2F
M)A^P3^1C._;;%6[VS-<2S,T\L!C0N07E ?QA!*>_ $_))]7:VI _V@JJ<_\
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
MW>#'95M[VE[>#JZI7#+L4!P6"/6.!^A:E@VWG&BQLDWN3FALF7:8XB4%I-F
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
MHQ*6.I1W,=8?!]&6IVU'\753?SUPI:NYIEGHBAZ$ >CW2\[58\<$Z/\C)+\
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
M81<)5-'4%1,CYWE?="\-=EGY<(:-,"@;@.L3*<UJ8ENMJK6._@)02P,$%
M  @ DXTG50('V<\2 P  J0<  !D   !X;"]W;W)K<VAE971S+W-H965T-30N
M>&ULE55M3]LP$/XKIPQ-3 *2)O2-M9%H :T32 @&^S#M@YM<&@O'#K;3PK^?
M[:19-T*G?4ELY^YYGKN<[R8;(9]4CJCAI6!<3;U<Z_+,]U628T'4B2B1FR^9
MD 719BM7OBHEDM0Y%<P/@V#@%X1R+YZXLUL93T2E&>5X*T%514'DZPR9V$R]
MGK<]N*.K7-L#/YZ49(7WJ!_*6VEV?HN2T@*YHH*#Q&SJG??.9F-K[PP>*6[4
MSAIL)$LAGNQFD4Z]P I"AHFV",2\UCA'QBR0D?'<8'HMI77<76_1KUSL)I8E
M43@7[#M-=3[U1AZDF)&*Z3NQ^8)-/'V+EPBFW!,VC6W@05(I+8K&V2@H**_?
MY*7)PXY#&+[C$#8.H=-=$SF5%T23>"+%!J2U-FAVX4)UWD8<Y?:GW&MIOE+C
MI^,K0B4\$E8AW"!1E423<:W@&.8YX2M40#EDUFCMC(I=H\,+U(0R]<F87^,:
M&41P8!V^Y:)2A*=JXFLCTE+Y22-H5@L*WQ$T@!O!=:[@DJ>8_NGOF^#:",-M
MA+-P+^#7BIU U#N", A#>+B_@,.#3WMPHS9SD<.-_IFY(SA7"DT^F@RF8,KM
M#I-*2LI7,".*JB-XX&*I4*[)DB$L>%EI:R-X0ADEKD)_7!L*6&@LU,^NQ-5Z
M3KOUV-M[IDJ2X-0SU],RH1=__- ;!)_W1'O:1GNZ#SV>$49X@D TZ!QAB2O*
MN8FN2V>-U'=(MBFLXUXX'@<3?]TAH-\*Z.\5L."):3H*(9.B,)?YN:**VK1U
MUEB--=B1$$;1,.J6,&@E#/9*F!.50TE>7?%WL0[>L![W@GYOV$T[;&F'^VES
M(NU%U+D4U<HHD"*C&H0$)E2GCN$;';U1]$[PHU;%:*^*RRPSC11$!H58-_??
MM@8A3>/C@"^)ZQ==<D9=:7FG',:MG/'_U"/RM(MY_*82PV%_./Z+VM]IGP6:
M7-LAH2 1%==U)VU/VSET7K??W^;U$+LQOXIR!0PSXQJ<# VWK =#O=&B=,UX
M*;1I[6Z9FUF*TAJ8[YD0>KNQ!.UTCG\!4$L#!!0    ( ).-)U7[!NN1@@(
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
M'/?'._4O/G?*9<D,7BCQP#-;S()) !GFK!;V1FV^XC:?D=-+E3#^"9NM;2^
MM#96E5MG(BBY;-[L:5N'/8<H>L,AVCI$GKL)Y"DOF67)5*L-:&=-:F[@4_7>
M!,>EVY1;J^DK)S^;W&F6(9RGJ:JE-7"#*?(U6PJ$$UAHM>:^^K3Y<*$QXQ9^
M*&/0P/$E6L:%^0!'P"7<%:HV3&9F&EJB<MIANB68-P31&P0Q7"MI"P-7,L/L
MI7](V;0I1;N4YM%!P>^U.(5!_R-$O2B"^]M+.#[Z<$!WT)9JX'4'_UJJKIP;
MJ6&WE+MI9Z9B*<X"NDH&]1J#Y/V[?MS[? !TV((.#ZDG<R:83#NQ&L>1=W3W
M=9WT)W%O&JX[PHW:<*.#X2YJK5%:J%!SE4'UXM3@4T7W#S,0_MQT,37J\1Y3
M-(BZD>(6*3Z(]*"YQ1.5YP;2@ND5Q6<KZE#&@BWP&;$+)WZ%<]+O#[MYQBW/
M^"#/59Y3%4#E4*HU4D^C\\-]@:AK2"H24<I5YXZ-7^-$;U1GTM),_O=\3%Z?
MCT^C^*]PX5Z[*9&JZYHJ5=K=BZ;SM*MMWSYOVM6S>=/TKVES:%M 8$ZNO=,Q
MA=9-(VTF5E6^>2V5I5;HAP7]>U [ _J>*V5W$Q>@_9LE?P!02P,$%     @
MDXTG54#'5U1T @  :@8  !D   !X;"]W;W)K<VAE971S+W-H965T-3@N>&UL
MK55M;YLP$/XK%JNF5LK*:\C6$:0UU=1-VA:E[?;9@4OP:C"U3=+]^YT-0;2E
M73_L"_CL>YZ[Y\P=R5[(6U4 :')?\DK-G4+K^LQU559 2=6IJ*'"DXV0)=5H
MRJVK:@DTMZ"2NX'GQ6Y)6>6DB=U;RC01C>:L@J4DJBE+*O^< Q?[N>,[AXT5
MVQ;:;+AI4M,M7(&^J9<2+;=GR5D)E6*B(A(V<^>3?[:8&G_K\)/!7@W6Q"A9
M"W%KC"_YW/%,0L ATX:!XFL'"^#<$&$:=QVGTX<TP.'ZP/[9:D<M:ZI@(?@O
MENMB[KQW2 X;VG"]$OM+Z/38!#/!E7V2?>L;8\2L45J4'1CMDE7MF]YW=1@
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
M')1#01JF[\3F,_1^(LN7":;:+]ITN5'DH*Q16E0]V"BH*.]:\MSOPPC@AWL
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
MW,=[!F%]77V#D1=H1E';R'5#7U/?8!2$>NUVZG.F^OU&_7ZG^O^(W?3CUV>
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
MI^TC_4\5O AF QE:DNQ?G/!T:HP,D* M+#-^1PX?41W04/)BDC'U%QQJ6\L
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
MLT;DWU-*UC3'7:DH*(&FJ'^AX]0;>.'8/EXN<8>1 X.Z4=0V"@/7JQO%;:,
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
M?76&\^R*-WN0;)'>DCXS*5F<-N=  ^!Z@'H_94QN'O0$Q47[Y%]02P,$%
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
M@*4_'TA/!-TD+]3G5 @:)8=K@GW"U WR\R6EXG"B N0_XAC]!U!+ P04
M" "3C2=5NNXF)XP#   1#P  &0   'AL+W=O<FMS:&5E=',O<VAE970W."YX
M;6S-5VV/VC@0_BM66E6MM) 7(, >( %A[WJZO:*BMA^J?C!D(-$Z<6H;Z/[[
M&SLAA25+=]M(UR\03^9Y9CR/&3R#/1=W,@)0Y%O"4CFT(J6R:]N6JP@2*IL\
M@Q3?K+E(J,*EV-@R$T!# TJ8[3F.;R<T3JW1P-CF8C3@6\7B%.:"R&V24'$_
M <;W0\NU#H;W\292VF"/!AG=P +4AVPN<&67+&&<0"ICGA(!ZZ$U=J]G/>UO
M'#[&L)='ST3O9,GYG5Z\#8>6HQ,"!BNE&2A^[6 *C&DB3.-KP6F5(37P^/G
M?F/VCGM94@E3SC[%H8J&5L\B(:SIEJGW?/\7%/OI:+X59])\DGWAZUADM96*
M)P48,TCB-/^FWXHZ' &0IQK@%0#O(:#]"*!5 %I/C= N .VG1N@4 +-U.]^[
M*5Q %1T-!-\3H;V133^8ZALTUBM.]3E9*(%O8\2IT4+QU5UC@J4.R90G>/PD
M-0K.&4TE:9!%?H (7Y-_>;H#J=!S$5$!Y'4 BL9,OD&WE\0F4EOEP%:8EV:W
M5T4.DSP'[Y$<6N26IRJ29):&$%;@@\MX_P+>QGJ41?$.19EX%PG_WK(F:;E7
MQ',\KR*?Z=/A;M5V?BWZ[*>CGQ2C59Z0EN%K/79"M*J-Y?D)&0M!TPU@TU!D
M>4^._>;TWIC'>RI"\OD?I"1O%23R2]7IR..WJ^/K1GDM,[J"H86=4(+8@35Z
M]<+UG3^JI*F3+*B3;%83V8F([5+$]B7V7Q?QBKS+-$!>D3\1H22)L4> B'FH
M+5Q*\AHM>0MX4Z7RQ02?JW*=9$%.YALR_;^Z&[4Z;;_?']B[8_UJBGFB7Z?4
MK_-C_2+.0A"-<98)OM-=6/?N@RZF89//MY L053^S"Y&>*X =9(%=9+-:B([
MD<DO9?+_YU[IUREBG61!G62SFLA.1.R6(G9_]U[9/>M(?:^M+P/'#6EZ[N4Z
MCG/J%)P[53:W<S?/[SM>IW0[*66O+&7O8BG-]@%W_<E<V"%LD/$.! X@>64:
M>&<%<D-C03Y2M@62@3A<+K%"(6>,"FFLIEJ5Q;J8PG-_$G62!3E9]UB@7K/O
M/BA]A9??[#VLO'UTQT] ;,QP)<F*;U.57^9*:SF_C<W8\L ^<:^G;H4]P'DO
M'\^^T^?#XBT5FQC_81BL,933[&*+%?D EB\4S\R$L>0*YQ7S&.',"D([X/LU
MY^JPT '**7CT'U!+ P04    " "3C2=5X/YD/3<%  #8&   &0   'AL+W=O
M<FMS:&5E=',O<VAE970W.2YX;6S%66UOXC@0_BM6;G5JI9;$"832 R1*=^]Z
MVMXA4+LZK>Z#(0-$36+.-E#^_=I)2 ($TT9T[TO)BV<\\\SX\1.WO:;LA<\!
M!'H-@XAWC+D0BUO3Y),YA(37Z (B^69*64B$O&4SDR\8$"\V"@/3MBS7#(D?
M&=UV_&S NFVZ%($?P8 AO@Q#PC9W$-!UQ\#&]L'0G\V%>F!VVPLR@Q&(I\6
MR3LS\^+Y(43<IQ%B,.T8/7S;MQUE$(]X]F'-"]=(I3*F]$7=/'@=PU(100 3
MH5P0^;."/@2!\B3C^"]U:F1S*L/B]=;[ESAYF<R8<.C3X)OOB7G'N#&0!U.R
M#,20KO^ -*&&\C>A 8__HG4ZUC+09,D%#5-C&4'H1\DO>4V!*!C8[A$#.S6P
M]PSP,0,G-8B1,Y/(XK3NB2#=-J-KQ-1HZ4U=Q-C$UC(;/U)E' DFW_K23G1'
M@DY>KN\D$![JTU!V!R<QOH. 1!Q=HU%27T2G: A<,'\BY-#1G#! 3Y$O..JI
M2OAB@R[N01 _X)?2[&ETCRX^7:)/R$1<#>;(CQ*#*_E07C_Z02 GXFU3R#Q4
M-.8DC?DNB=D^$K.+'FDDYAQ]CCSP2NS[>GML:QR8$L ,17N+XIVM]?CG,J@A
M!U\AV[+MLH!.F)/HF/E..$Y65"?VYQPKJ@+\>GQ8U!YC))J!7(8"C3>H.&Y
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
MFG@W'BJ@Q!NJ5GSW%=IXAH8OYU3:)]HYWV'@H7PC%:];L+Y!39A[XWV;AR.
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
M8$&S2RF@RS>B-*S*B[X\4Y:Z?#%<TK.*VCG0^EPI^VRX5E\]U/$/4$L#!!0
M   ( ).-)U75"_(TWP(  )$*   9    >&PO=V]R:W-H965T<R]S:&5E=#@T
M+GAM;+56;6_:,!#^*U963:W4D3>@'0N1RINZ2=50NVZ?37* 5<?.; -=?_UL
M)V1 4T97]H7XY9[G.=\=]D4K+A[D'$"AQXPRV77F2N4=UY7)'#(L&SP'IG>F
M7&18Z:F8N3(7@%,+RJ@;>%[;S3!A3AS9M;&(([Y0E# 8"R0768;%KQY0ONHZ
MOK->N"6SN3(+;ASE> 9WH.[SL= SMV))209,$LZ0@&G7N?([HY:QMP;?":SD
MQAB9DTPX?S"3SVG7\8Q#0"%1A@'KSQ+Z0*DATF[\+#F=2M( -\=K]I$]NS[+
M!$OH<_J#I&K>=2X=E,(4+ZBZY:MK*,]C'4PXE?87K4I;ST')0BJ>E6#M0498
M\<6/91PV )JG'A"4@& 7T'P!$): \%"%9@EH'JK0*@&M0P'M$M"VL2^"92,]
MP K'D> K)(RU9C,#FRZ+U@$FS!36G1)ZEVB<BON<*:'3BWJ88I: /$=C$+9@
M]0Q]G5 RPZ8&),(L195YGTLET>D %"94GJ$/Z/YN@$Y/SM )(@S=$$H-*'*5
M=M)(N4GI4*]P*'C!H1#=:(VY1$.60EJ#'^S'M_?@71V<*D+!.D*]8"_AEP5M
MH- _1X$7!#7^] ^'^W7'>9OZ\&WJH[_ ,7M)?2N6855MH>4+_T>UU=52(=>L
MES.7<D?F.(&NHV]="6()3OS^G=_V/M4E\IAD@V.2#8])-CH2V58!-*L":.YC
MC_LX)PI3\@0I2M;9371VSQ$#_?.-Z]VZ1!>T'RVM>2R7L7_1""-WN9G O=JO
M3> ABL-C*HYJ%-N-=J6X%?!6%?#6OP8<9UPH\F3_;W4A;SUWI]'<B7B=3;!M
M,WAN$S0N=^)89[/#,]I[T-?6K;OQ9&8@9K:YD3HR"Z:*^ZQ:K?JG*]LV[*SW
M_$[?KUD?^)UAT1[]H2^:M1LL9D3?<!2F6LIK7.B#B:(!*B:*Y_;!GG"EGW\[
MG.N>$80QT/M3SM5Z8@2J+C3^#5!+ P04    " "3C2=5?SP/>S,#  #L"@
M&0   'AL+W=O<FMS:&5E=',O<VAE970X-2YX;6RM5FUOFS 0_BL6JZ96:DMX
M"6FZ!*F%3-ND:E5?ML\N7 (KV-0V3??O=P9*$Z!1M_5+@LT]S_EY.(Z;K;FX
MEPF (D]YQN3<2)0J3DU31@GD5![S AC>67*14X5+L3)E(8#&%2C/3'LT\LR<
MILSP9]7>I?!GO%19RN!2$%GF.16_SR'CZ[EA&<\;5^DJ47K#]&<%7<$UJ-OB
M4N#*;%GB- <F4\Z(@.7<.+-.%Q,=7P7\2&$M-ZZ)5G+'^;U>?(WGQD@?"#*(
ME&:@^/<( 629)L)C/#2<1IM2 S>OG]D_5]I1RQV5$/#L9QJK9&Z<&"2&)2TS
M=<777Z#1,]9\$<]D]4O6=>QD:I"HE(KG#1A/D*>L_J=/C0\; .09!M@-P.X"
MW%< 3@-PWIK!;0#N6S.,&T EW:RU5\:%5%%_)OB:"!V-;/JB<K]"HU\ITW5R
MK03>31&G_.\J 4&"A(H52')$ IX7G %3DO EV;Z['X*B:28/,.[V.B3[>P=D
MCZ2,W"2\E)3%<F8J/)-F-J,F_WF=WWXEOT,N.%.)) L60SR #W?CO1UX$[UH
M#;&?#3FW=Q)^*[-CXEB'Q![9]L!Y@K?#K2$Y_Y=]\<_9M\QPVNIP*C[G+=5Q
M//1T:[P[C-=-[E06-(*Y@5U,@G@$P__XP?)&GX:L?4^R\#W)%N]$MO40W/8A
MN+O8_;/HH4QEJOOJD8",*HA)Q*4:?-MJJG%%I;\1C_[4=F;FXZ;-_1AG:FW'
MA/T8RW-/MH,6 \E&+S%;8L>MV/%.L0&^S2E;80-"C?@UBD'0^HL2_\)NF.O.
M-*2[9O4V-8W''=T[,_]M>?436J/QM&/0.V7<<M)KG?1V.GD%4HDR4J5 /TF1
M439HG-?7T:F%H!_2+:FP'^*Y'2\&6+SA6IFT"B<[%=;=B>%K@6.3+A/4"4\X
M04DX)#=<T6Q(\*1?V?9)Y\$%_2#7Z@@*^S'V9-+Q;M$/FCIN1[:Y\?G. 5NM
MGILDUG_)5-VKV]UV-#NK)I+._KEU&E@#^R&.<O7D]4)?SX$7V-E3)DD&2TPU
M.I[@244]6]4+Q8MJ>+CC"D>1ZC+!<12$#L#[2\[5\T(G: =<_P]02P,$%
M  @ DXTG56XFFTM&!   <A   !D   !X;"]W;W)K<VAE971S+W-H965T.#8N
M>&ULK5AM;]LV$/XKA%8,+=!$HMZ=V082R44SK&C0I-MGQJ(MH9*HD;2=_/N1
MDJ(XU%D-NGR))/JYAWSNCL=CY@?&?XB<4HD>JK(6"RN7LKFP;;'.:47$.6MH
MK7[9,%X1J3[YUA8-IR1KC:K2=ATGM"M2U-9RWH[=\.6<[619U/2&([&K*L(?
MKVC)#@L+6T\#WXIM+O6 O9PW9$MOJ?S>W'#U90\L65'16A2L1IQN%M8EOEAA
M3QNTB+\+>A!'[TA+N6?LA_ZXSA:6HU=$2[J6FH*HQYXFM"PUDUK'OSVI-<RI
M#8_?G]@_M>*5F'LB:,+*?XI,Y@LKME!&-V17RF_L\)GV@@+-MV:E:/^B0X]U
M++3>"<FJWEBMH"KJ[DD>>D<<&2@>V,#M#5S3P#]AX/4&WFMG\'L#_[4S!+U!
M*]WNM+>.2XDDRSEG!\0U6K'IE];[K;7R5U'K1+F57/U:*#NYO-TU34E5Y"4I
M44)$CCZIW$'7=9>#.I9G1^-)3NHM%:BHT=>&<@6HM^A2")71I,[07P6Y+\I"
M%@KR/J62%*7XH B^WZ;H_;L/Z)TVO,O93BBTF-M2*=#KL-?]:J^ZU;HG5NNA
M+ZR6N4"K.J,98)].VX<3]K;RW. ^]\E]5^XDX9^[\AQY^"-R'=<%UI.\WAQ#
M<O[?[*M?GOV%,[PAE[R6S_OE7((BWG'Z,*>NDQ>B(6NZL%0A%)3OJ;7\_3<<
M.G] [GY+LO0MR59O1/8B,/X0&'^*?7G'249535ZS72V%JN]K6NS)?4FA>'14
M04NECYG]\@R'KC^W]\>.'J,\'+[$I "3'_@&TVJ,PCZ>#: 7@H-!<# I^*O,
M*7^MX(XJ/%J &WBNH7<,BAU#20H0>?[,D O-AEU8;CC(#2?EWG#:D")#]$'U
M#T+57EV+F?8!I#<<K>#,C8W8)0#(<T81'J/\F6<(AI@"WX,51X/B:%+Q=;U7
M98;Q1TA@-)X1QX8^"!.:\L8@SX"L ![/BV%Q\2 NGA1W^92W#7D\E;0Q$$33
M]0D FIE)"V P]@)#)C0=]F&9LT'F[&<R^8YFJ'QN&B"E,V"!46Q*':,"+S+V
M7@I0>7%H;/75&.7[801KQ<YSG^7\)&/7K*)(D@<Z&=B>QHBLN3T!%'9G1M12
M$!49<J$)/>=$"N.COA)/E^"A/2RI:N3A9@^/IS;/AP0"N;YC2@50.#!K$8 Z
M58FP^ZS4G52:T@WE7"4RIZHH[>"HNN.R'YE[,0%0V'?-J@2@(A]C4^H8Y3O^
MB2V+GUL\/-FHZ#3F.IZZO>_>/KR\#"2D*53_]Q'=,?4 ?>&-3OQ9;)ZW "B(
M1B<N@(I<<S\#H-B)S2/7/KI#591OV\NK0&TE[EK@872X(%^VUT)C_ I?)!@8
M3_6%NKVS/=-WM_$OA&^+6JB-LE%3.>>16BKO+KC=AV1->X.[9U+=!]O7G*J6
MCFN ^GW#F'SZT!,,_V98_@=02P,$%     @ DXTG50\(BEM&!   CA@  !D
M  !X;"]W;W)K<VAE971S+W-H965T.#<N>&ULM9E=;]LV%(;_"J$50PNTD:A/
M*[,-)):VI6B (&FVBV$7C$3;1"71(VF[_?<C)46V9$9P-N8FENCW/.3AH5Z+
MS'1/V3>^QEB [V51\9FU%F)S:=L\6^,2\0NZP97\9DE9B82\92N;;QA&>1U4
M%K;K.*%=(E)9\VG==L?F4[H5!:GP'0-\6Y:(_;C&!=W/+&@]-]R3U5JH!GL^
MW: 5?L#B<7/'Y)W=47)2XHH36@&&ES/K"EZF,%0!M>(/@O?\Z!JH5)XH_:9N
M;O*9Y:@1X0)G0B&0_-CA!2X*19+C^*>%6EV?*O#X^IG^:YV\3.8)<;R@Q9\D
M%^N9-;% CI=H6XA[NO\=MPD%BI?1@M=_P;[5.A;(MES0L@V6(RA)U7RB[^U$
M' 5(CC[ ;0/<88#_0H#7!GCG]N"W ?ZY/01M0)VZW>1>3UR"!)I/&=T#IM22
MIB[JV:^CY7R12BV4!\'DMT3&B?D#7LFR"YR#FZI9=JI\G\"A_1[O<+7%X.D'
M^ W3%4.;-<E0 ;[0K!'3)5C4 \4,O$^P0*3@'R3B\2$![]]] .\ J<#7-=UR
M5.5\:@LY;-6YG;5#O&Z&Z+XP1 _<TDJL.4BK'.>:^&0\/AR)M^5T=7/F/L_9
MM3L*_+PM+H '/P+7<5W->!;GAT-=.O^O]_0_]]Z;#*];0%[-\\87D%PF&\H$
MJ5:]A?37%RD'-P*7_&]=Y1NVKV<KD[SD&Y3AF25=D&.VP];\YY]@Z/RBFW:3
ML,0D+#4$ZQ7([PKDC]'GO8>6-0^SKA0-):@IZN=E-X>NYT"Y1G;'DZR1.7X0
M.7U9<BISO=AWPKXLU<@<SW<FG:R7<M"E'(RF_%@1Y5P/ @FL-9S1\-<N.Y.P
MQ"0L-03KU2#L:A"^H2^$)@MD$I:8A*6&8+T"15V!(B.^T%#"HT<TF@1A/+"%
M4U40.Y/!XYZ<JJ ?A9XW< 6-#/J>[^E=8=(E/!E-.-TR^7[]$=R2/"_PIQ1Q
M >0;";A:,CD'NM1'>:]=A29AB4E8:@C6*TK<%25^0YN(31;()"PQ"4L-P7H%
M@LYAA^ 8,8H6<_S8>D[D#SQ@H9/!23AXST@TLC#PHFA@%3J9&_LOO$# HVT1
M'$UZ@2J4:TUA//"UB\XH+3%*2TW1^B5P#R5PW] :6KBI,IFD)49IJ2E:OTR'
M_1\<W;V<;P_>R9,:PVBXO="I7"<>FL.I"D9R%S(T!YTLF, 7S.&PHX+C6ZHK
M3A"X0QE9DDR;ZFCXJ]>>25IBE)::HO4+<=CGP> M+<+H-M H+3%*2TW1^F4Z
M; 7AZ$;F?(L(3XX#_, -AA:A4?G0'UK$J6H2>_'0(32JP L'!F$?G:^6F*WJ
M@VT.,KJM1'-2UK5VA^=7]9'QH/T:7BZ@ICU1A^WU>>X!WYS4WR*V(A4'!5[*
MKIR+2 Z5-8??S8V@F_IT]XD*0<OZ<HU1CID2R.^7E(KG&]5!]R^(^;]02P,$
M%     @ DXTG57Z\A7[0 P  (A0  !D   !X;"]W;W)K<VAE971S+W-H965T
M.#@N>&ULM5C;;MLX$/T50ELL6F ;B=3%5M8VT%@JFD4+!'';?2CZH%AC6Z@D
M>DG:;OZ^I*3(ELP*299YB45JSAG.#'E"S>1 V0^^ 1#H9Y&7?&IMA-A>VC9?
M;J!(^ 7=0BG?K"@K$B&';&WS+8,DK4!%;A/'">PBR4IK-JGF;MAL0G<BSTJX
M88COBB)A]U>0T\/4PM;#Q&VVW@@U8<\FVV0-"Q!?MC=,CNR6)<T**'E&2\1@
M-;7>X<L8NPI067S-X,!/GI$*Y8[2'VIPG4XM1ZT(<E@*19'(GSW,(<\5DUS'
M?PVIU?I4P-/G!_;W5? RF+N$PYSF_V:IV$RML8526"6[7-S2PP=H O(5WY+F
MO/J+#HVM8Z'EC@M:-&"Y@B(KZ]_D9Y.($X#DT0-( R!]@/<;@-L W,=Z\!J
M]U@/?@.H0K?KV*O$18E(9A-&#X@I:\FF'JKL5VB9KZQ4&V4AF'R;29R8+6 M
MRRX@1==EO>U4^=ZBX_PM[*'< ;J[;Q\_WV\!O8Y )%G.WTCK+XL(O7[U!KU"
M68D^;^B.)V7*)[:0*U1^[&6SFJMZ->0WJW'1)UJ*#4=QF4*JP4?#^&  ;\O,
MM.DA#^FY(H.$_^SR"^3BOQ!Q"-&L9_YX.-:%\_^\Q\_VWDF&V^X5M^)SA_>*
MW 9;RD16KCM[YMM':8ZN!13\NZ[R-;>GYU9Z>,FWR1*FEA0\#FP/UNS//W#@
M_*U+NTFRR"19;(BL4R"O+9 WQ#YKSJ?VX-5(OT*J_Q[[&2:N@^6^V)\F5F/F
M>/[(Z9I%YV;$#3TGZ)K%&C/']9QQ:]8)TV_#] ?#7,BT94O013D(?.HF,TD6
MF22+#9%ULA^TV0]>4 4"DP4R21:9)(L-D74*-&H+-'JV"M3(H'.\0W=$>BIP
M;A:ZWBCLB<"Y%<&$.'Y/!#0^QW@4AGH1&+=1C@>CO&%T!5S=5Y,<\5H1.)+7
M#D3%!I@N^$'"I^X]DV212;+8$%FG*F%;E? %Q2$T62"39)%)LM@06:= V#E>
M^)UGRT,#[>J#Z_<._EQC%H9N[]Q'&BLBHQCUY$'G,\38T\L#/OFPP8-Q?I2"
M4'+M+6$8^=2-9I0M,LH6FV+KUH <:T!>4 X:<E-E,LD6&66+3;%URW3\KL.#
M7R7#DN">W>%=,G;ZBG!NA;$?]!7AW,KW0Z\O".=6Q O]GA[8)SV/ MBZ:C9Q
MM*2[4M2?M.ULV]!Z5[5Q>O-7^'*.-?.1:H!5/98C?=T]^Y2P=59RE,-*NG(N
M1G*IK&Y(U0-!MU7'Y8X*08OJ<0-)"DP9R/<K2L7#0#EHVX*S7U!+ P04
M" "3C2=5TYY&T&4#  #B#P  &0   'AL+W=O<FMS:&5E=',O<VAE970X.2YX
M;6RU5UUOTS 4_2M60&B3V/*=-J.--+H!0R!-*X,'Q(.7W+86CAUL=X5_CYUD
M:=-E@4W92YN/>T[O.3Y)KR<;+G[*%8!"OW/*Y-1:*56<V+9,5Y!C><P+8/K.
M@HL<*WTJEK8L!."L!.74]APGLG-,F)5,RFN7(IGPM:*$P:5 <IWG6/QY"Y1O
MII9KW5VX(LN5,A?L9%+@)<Q!71>70I_9#4M&<F"2<(8$+*;6J7LR<T,#*"N^
M$MC(G6-DI-QP_M.<7&13RS$= 854&0JLOVYA!I0:)MW'KYK4:G[3 '>/[]C?
ME>*UF!LL8<;I-Y*IU=0:6RB#!5Y3=<4W'Z 65#:8<BK+3[2I:QT+I6NI>%Z#
M=0<Y8=4W_ET;L0-P@P< 7@WP_A?@UP"_%%IU5LHZPPHG$\$W2)AJS68.2F]*
MM%9#F%G&N1+Z+M$XE<QAJ1=%088N6!4*8^X1^L39\HAJAS-T*B4HB6[^H/?
MEP(7*Y)BJBO2JOC@#!0F5!YJV/7\#!V\/$0O$6'HRXJO)6:9G-A*MVI^T$[K
MMMY6;7D/M/5Q38^1[[Y&GN-Y'?#9/^"8/02WM4&-2U[CDE?R^?TNH2LHN%"$
M+5MN??^DR]&%@ES^Z)):<0?=W.8Y/9$%3F%JZ0=1@K@%*WGUPHV<-UW"!R)K
MV> W-OA][$EK_>DV(;A,2)?TBB\L^<P;Y3;Q(C^.PHE]NRNJHRQP B]JREKM
M!DV[06^[UXR88,\55M#972_\L0LS$%E+:=@H#9\QG^&0-@Q$UK(A:FR(!LYG
MQ1?M!,\-0M\;[>6SH\SQHB#NSN>H:7?4V^[Y6NB_X]?H,\DR"D?G6"JD7Y?H
M="&T@JYV>_D>NU(#D;6DCQOIXV<,['A(&P8B:]D0-S;$ P<VOI=$/PI&T5Y>
M[U<%?FS^";OBZCK;6<'I;7>&&<XZ@]D/?.R2#,76EKDS$KG/&,Z:?"@K!F)K
M6[&=>]S>>>() :T)=[,W"L(HWDMH1]DXB /_@8AN)Q2W?T0YE02C2YR2!4D[
MV^N%/WIU!F)KB]W.-V[PG$$==/P9BJUMQ78 <GL'BZ<$-;PW=(["V-_/Z?VJ
M<>SNOTGMG0V8V?U^QF))F$04%AKF'(\T7E0;RNI$\:+<D]UPI7=XY>%*;\)!
MF )]?\&YNCLQV[QF6Y_\!5!+ P04    " "3C2=5B+M7AQP"  "Q!   &0
M 'AL+W=O<FMS:&5E=',O<VAE970Y,"YX;6R55-N.TS 0_17+2 @DJ-/TLJ@D
MD=I=$(NTJ-H*>':326*M8P?;:9:_QY<T!*E;B9=DQIYSYLQD)DDOU9.N 0QZ
M;KC0*:Z-:3>$Z+R&ANJ9;$'8FU*JAAKKJHKH5@$M/*CA)(ZB-6DH$SA+_-E>
M98GL#&<"]@KIKFFH^KT#+OL4S_'YX)%5M7$')$M:6L$!S/=VKZQ'1I:"-2 T
MDP(I*%.\G6]V2Q?O WXPZ/7$1JZ2HY1/SKDO4APY0< A-XZ!VM<);H%S1V1E
M_!HX\9C2 :?VF?VSK]W6<J0:;B7_R0I3I_@#1@64M./F4?9?8*AGY?ARR;5_
MHC[$KFXPRCMM9#. K8*&B?"FST,?)H X?@$0#X#8ZPZ)O,H[:FB6*-DCY:(M
MFS-\J1YMQ3'A/LK!*'O++,YD!ZALBPT4Z%Z$3^QZ]1YMBX(YDW+$)A=O[L!0
MQO7;A!B;W7&0?,BT"YGB%S*MT8,4IM;HDRB@^!=/K.I1>GR6OHNO$G[M^ PM
MYN]0',4QTJ&0*[R+L24+S[OXGY;,+A4<>):7>=PZ;71+<TBQW1<-Z@0X>_UJ
MOHX^7E&Y'%4NK[%GW[KF" K)TJY&*Y6A1P[G)NA+8@/=VM.Y53UE\X2<I@K(
M9(P:4)5?%HURV0D3)FH\'?=Q&\;P;WA8Y@>J*B8TXE!::#2[66&DPH($Q\C6
M#^51&COBWJSM/P64"[#WI93F[+@$XU\J^P-02P,$%     @ DXTG5;X/EBE1
M P  )A0   T   !X;"]S='EL97,N>&ULW5C13MLP%/V5*(P)I(FTS4B;T5;:
M*B%-VB8D>-@;<ANGM>0XF>.RED>^9U^U+YFOG29I\:T8#X,N%<2^Q^?<8_NF
M,0Q+M>;T>D&I\E89%^7(7RA5? B"<K:@&2G/\H(*C:2YS(C273D/RD)2DI1
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
M4];OXWCXQ_'+,^VK=GC)SY8_V-S^!%!+ 0(4 Q0    ( )*-)U4'04UB@0
M +$    0              "  0    !D;V-0<F]P<R]A<' N>&UL4$L! A0#
M%     @ DHTG5;8A^%/N    *P(  !$              ( !KP   &1O8U!R
M;W!S+V-O<F4N>&UL4$L! A0#%     @ DHTG59E<G",0!@  G"<  !,
M         ( !S $  'AL+W1H96UE+W1H96UE,2YX;6Q02P$"% ,4    " "2
MC2=53K_ D]("  ##"   &               @($-"   >&PO=V]R:W-H965T
M<R]S:&5E=#$N>&UL4$L! A0#%     @ DHTG57W(J.0W!P  VQP  !@
M         ("!%0L  'AL+W=O<FMS:&5E=',O<VAE970R+GAM;%!+ 0(4 Q0
M   ( )*-)U5U%DXF0P(  .T%   8              " @8(2  !X;"]W;W)K
M<VAE971S+W-H965T,RYX;6Q02P$"% ,4    " "2C2=59IS[O^\&  !W(0
M&               @('[%   >&PO=V]R:W-H965T<R]S:&5E=#0N>&UL4$L!
M A0#%     @ DHTG564JN4>Y P  ) T  !@              ("!(!P  'AL
M+W=O<FMS:&5E=',O<VAE970U+GAM;%!+ 0(4 Q0    ( )*-)U7N(^+XQ0(
M #((   8              " @0\@  !X;"]W;W)K<VAE971S+W-H965T-BYX
M;6Q02P$"% ,4    " "2C2=5(7"T>($&   V*@  &               @($*
M(P  >&PO=V]R:W-H965T<R]S:&5E=#<N>&UL4$L! A0#%     @ DHTG5;N[
M@.61!P  @"(  !@              ("!P2D  'AL+W=O<FMS:&5E=',O<VAE
M970X+GAM;%!+ 0(4 Q0    ( )*-)U621B\KA00  /L)   8
M  " @8@Q  !X;"]W;W)K<VAE971S+W-H965T.2YX;6Q02P$"% ,4    " "2
MC2=5I.3 8Q((  ":%0  &0              @(%#-@  >&PO=V]R:W-H965T
M<R]S:&5E=#$P+GAM;%!+ 0(4 Q0    ( )*-)U7G$JZMJ L  + I   9
M          " @8P^  !X;"]W;W)K<VAE971S+W-H965T,3$N>&UL4$L! A0#
M%     @ DHTG55;Q]\5@"   3Q<  !D              ("!:TH  'AL+W=O
M<FMS:&5E=',O<VAE970Q,BYX;6Q02P$"% ,4    " "2C2=5"!&S+4X#  !)
M"   &0              @($"4P  >&PO=V]R:W-H965T<R]S:&5E=#$S+GAM
M;%!+ 0(4 Q0    ( )*-)U4[M(L1V (  .\&   9              " @8=6
M  !X;"]W;W)K<VAE971S+W-H965T,30N>&UL4$L! A0#%     @ DHTG5>=J
M4W2] @  *@8  !D              ("!EED  'AL+W=O<FMS:&5E=',O<VAE
M970Q-2YX;6Q02P$"% ,4    " "2C2=5-_BJA-\"  #J!@  &0
M    @(&*7   >&PO=V]R:W-H965T<R]S:&5E=#$V+GAM;%!+ 0(4 Q0    (
M )*-)U4 BTXO7@0   \*   9              " @:!?  !X;"]W;W)K<VAE
M971S+W-H965T,3<N>&UL4$L! A0#%     @ DHTG57TC$8PX P  7P<  !D
M             ("!-60  'AL+W=O<FMS:&5E=',O<VAE970Q."YX;6Q02P$"
M% ,4    " "2C2=5FYL\A;T"  !V!@  &0              @(&D9P  >&PO
M=V]R:W-H965T<R]S:&5E=#$Y+GAM;%!+ 0(4 Q0    ( )*-)U6FA+7F]@0
M !T+   9              " @9AJ  !X;"]W;W)K<VAE971S+W-H965T,C N
M>&UL4$L! A0#%     @ DHTG5<,?Q95%!   )@P  !D              ("!
MQ6\  'AL+W=O<FMS:&5E=',O<VAE970R,2YX;6Q02P$"% ,4    " "2C2=5
M V074\<)   1&0  &0              @(%!=   >&PO=V]R:W-H965T<R]S
M:&5E=#(R+GAM;%!+ 0(4 Q0    ( )*-)U6@#T?V&@8  $<0   9
M      " @3]^  !X;"]W;W)K<VAE971S+W-H965T,C,N>&UL4$L! A0#%
M  @ DHTG5>G?OAGF!   -!$  !D              ("!D(0  'AL+W=O<FMS
M:&5E=',O<VAE970R-"YX;6Q02P$"% ,4    " "2C2=55=8(&2T*   U*
M&0              @(&MB0  >&PO=V]R:W-H965T<R]S:&5E=#(U+GAM;%!+
M 0(4 Q0    ( )*-)U4.<1B/"P,  /T&   9              " @1&4  !X
M;"]W;W)K<VAE971S+W-H965T,C8N>&UL4$L! A0#%     @ DHTG5;IS$;'@
M!   K@P  !D              ("!4Y<  'AL+W=O<FMS:&5E=',O<VAE970R
M-RYX;6Q02P$"% ,4    " "2C2=56-PD+U,#   @"   &0
M@(%JG   >&PO=V]R:W-H965T<R]S:&5E=#(X+GAM;%!+ 0(4 Q0    ( )*-
M)U4HPD2E4@,  . '   9              " @?2?  !X;"]W;W)K<VAE971S
M+W-H965T,CDN>&UL4$L! A0#%     @ DHTG5>1=2DE@!0  _ T  !D
M         ("!?:,  'AL+W=O<FMS:&5E=',O<VAE970S,"YX;6Q02P$"% ,4
M    " "2C2=5>Y+@:1\(   >%@  &0              @($4J0  >&PO=V]R
M:W-H965T<R]S:&5E=#,Q+GAM;%!+ 0(4 Q0    ( )*-)U6^/,'L\@0  /H,
M   9              " @6JQ  !X;"]W;W)K<VAE971S+W-H965T,S(N>&UL
M4$L! A0#%     @ DHTG537^$FQ4 P  B D  !D              ("!D[8
M 'AL+W=O<FMS:&5E=',O<VAE970S,RYX;6Q02P$"% ,4    " "2C2=5:E<L
M:.D"  !D!P  &0              @($>N@  >&PO=V]R:W-H965T<R]S:&5E
M=#,T+GAM;%!+ 0(4 Q0    ( )*-)U5[>>&<70(  '\%   9
M  " @3Z]  !X;"]W;W)K<VAE971S+W-H965T,S4N>&UL4$L! A0#%     @
MDHTG5:WV6R+H @  T08  !D              ("!TK\  'AL+W=O<FMS:&5E
M=',O<VAE970S-BYX;6Q02P$"% ,4    " "2C2=58J<4D>X"  "/!@  &0
M            @('QP@  >&PO=V]R:W-H965T<R]S:&5E=#,W+GAM;%!+ 0(4
M Q0    ( )*-)U7=LT!#P@(  %X&   9              " @1;&  !X;"]W
M;W)K<VAE971S+W-H965T,S@N>&UL4$L! A0#%     @ DHTG55^R YEJ @
MG@4  !D              ("!#\D  'AL+W=O<FMS:&5E=',O<VAE970S.2YX
M;6Q02P$"% ,4    " "2C2=5]8\Z$, #  #L"@  &0              @(&P
MRP  >&PO=V]R:W-H965T<R]S:&5E=#0P+GAM;%!+ 0(4 Q0    ( )*-)U5C
M%2;O7@,  *,(   9              " @:?/  !X;"]W;W)K<VAE971S+W-H
M965T-#$N>&UL4$L! A0#%     @ DHTG525!\LX<!@  ]1@  !D
M     ("!/-,  'AL+W=O<FMS:&5E=',O<VAE970T,BYX;6Q02P$"% ,4
M" "2C2=5CZ=5/D0#  #$!P  &0              @(&/V0  >&PO=V]R:W-H
M965T<R]S:&5E=#0S+GAM;%!+ 0(4 Q0    ( )*-)U7E QQ:F (  #,&   9
M              " @0K=  !X;"]W;W)K<VAE971S+W-H965T-#0N>&UL4$L!
M A0#%     @ DHTG55!0QF=  P  = <  !D              ("!V=\  'AL
M+W=O<FMS:&5E=',O<VAE970T-2YX;6Q02P$"% ,4    " "2C2=5>;M,2>P#
M  #T"@  &0              @(%0XP  >&PO=V]R:W-H965T<R]S:&5E=#0V
M+GAM;%!+ 0(4 Q0    ( )*-)U7(VZ!T6PT  ,O,   9              "
M@7/G  !X;"]W;W)K<VAE971S+W-H965T-#<N>&UL4$L! A0#%     @ DXTG
M5;G^4TA"#@  1KD  !D              ("!!?4  'AL+W=O<FMS:&5E=',O
M<VAE970T."YX;6Q02P$"% ,4    " "3C2=5V:,IZ\@"   ""0  &0
M        @(%^ P$ >&PO=V]R:W-H965T<R]S:&5E=#0Y+GAM;%!+ 0(4 Q0
M   ( ).-)U4JP@N__0,  +08   9              " @7T& 0!X;"]W;W)K
M<VAE971S+W-H965T-3 N>&UL4$L! A0#%     @ DXTG5;SA[BI% P  +PP
M !D              ("!L0H! 'AL+W=O<FMS:&5E=',O<VAE970U,2YX;6Q0
M2P$"% ,4    " "3C2=5'?H72EL$   Y%P  &0              @($M#@$
M>&PO=V]R:W-H965T<R]S:&5E=#4R+GAM;%!+ 0(4 Q0    ( ).-)U6&%AFM
M[ (  &8+   9              " @;\2 0!X;"]W;W)K<VAE971S+W-H965T
M-3,N>&UL4$L! A0#%     @ DXTG50('V<\2 P  J0<  !D
M ("!XA4! 'AL+W=O<FMS:&5E=',O<VAE970U-"YX;6Q02P$"% ,4    " "3
MC2=5^P;KD8("  ">!@  &0              @($K&0$ >&PO=V]R:W-H965T
M<R]S:&5E=#4U+GAM;%!+ 0(4 Q0    ( ).-)U4#JP&R;P(  ( &   9
M          " @>0; 0!X;"]W;W)K<VAE971S+W-H965T-38N>&UL4$L! A0#
M%     @ DXTG53200 ZX @  V08  !D              ("!BAX! 'AL+W=O
M<FMS:&5E=',O<VAE970U-RYX;6Q02P$"% ,4    " "3C2=50,=75'0"  !J
M!@  &0              @(%Y(0$ >&PO=V]R:W-H965T<R]S:&5E=#4X+GAM
M;%!+ 0(4 Q0    ( ).-)U643H>\2@(  #D%   9              " @20D
M 0!X;"]W;W)K<VAE971S+W-H965T-3DN>&UL4$L! A0#%     @ DXTG5972
MU=DN!   RA4  !D              ("!I28! 'AL+W=O<FMS:&5E=',O<VAE
M970V,"YX;6Q02P$"% ,4    " "3C2=5I/E*% H$  #P$P  &0
M    @($**P$ >&PO=V]R:W-H965T<R]S:&5E=#8Q+GAM;%!+ 0(4 Q0    (
M ).-)U7NDF"TYP(  /X*   9              " @4LO 0!X;"]W;W)K<VAE
M971S+W-H965T-C(N>&UL4$L! A0#%     @ DXTG501-0@L9!   0Q<  !D
M             ("!:3(! 'AL+W=O<FMS:&5E=',O<VAE970V,RYX;6Q02P$"
M% ,4    " "3C2=5W;;L:8@"   #!P  &0              @(&Y-@$ >&PO
M=V]R:W-H965T<R]S:&5E=#8T+GAM;%!+ 0(4 Q0    ( ).-)U62=>LK% 4
M %0?   9              " @7@Y 0!X;"]W;W)K<VAE971S+W-H965T-C4N
M>&UL4$L! A0#%     @ DXTG5:,L]1<* @  W 0  !D              ("!
MPSX! 'AL+W=O<FMS:&5E=',O<VAE970V-BYX;6Q02P$"% ,4    " "3C2=5
M#B>;@3 $  !\$0  &0              @($$00$ >&PO=V]R:W-H965T<R]S
M:&5E=#8W+GAM;%!+ 0(4 Q0    ( ).-)U5&GKSB. ,  &X,   9
M      " @6M% 0!X;"]W;W)K<VAE971S+W-H965T-C@N>&UL4$L! A0#%
M  @ DXTG5;]]W),G!    @\  !D              ("!VD@! 'AL+W=O<FMS
M:&5E=',O<VAE970V.2YX;6Q02P$"% ,4    " "3C2=5@X.O/$,%  !)+0
M&0              @($X30$ >&PO=V]R:W-H965T<R]S:&5E=#<P+GAM;%!+
M 0(4 Q0    ( ).-)U4^=RAMR@,  !,3   9              " @;)2 0!X
M;"]W;W)K<VAE971S+W-H965T-S$N>&UL4$L! A0#%     @ DXTG5:I[COBQ
M!   K!4  !D              ("!LU8! 'AL+W=O<FMS:&5E=',O<VAE970W
M,BYX;6Q02P$"% ,4    " "3C2=51A41,\4(   %3   &0
M@(&;6P$ >&PO=V]R:W-H965T<R]S:&5E=#<S+GAM;%!+ 0(4 Q0    ( ).-
M)U7'V%F&9 0  'H9   9              " @9=D 0!X;"]W;W)K<VAE971S
M+W-H965T-S0N>&UL4$L! A0#%     @ DXTG56RUL.FK @  4@<  !D
M         ("!,FD! 'AL+W=O<FMS:&5E=',O<VAE970W-2YX;6Q02P$"% ,4
M    " "3C2=5%1B<&]($  !T%P  &0              @($4; $ >&PO=V]R
M:W-H965T<R]S:&5E=#<V+GAM;%!+ 0(4 Q0    ( ).-)U7F4UR&[P4  - A
M   9              " @1UQ 0!X;"]W;W)K<VAE971S+W-H965T-S<N>&UL
M4$L! A0#%     @ DXTG5;KN)B>, P  $0\  !D              ("!0W<!
M 'AL+W=O<FMS:&5E=',O<VAE970W."YX;6Q02P$"% ,4    " "3C2=5X/YD
M/3<%  #8&   &0              @($&>P$ >&PO=V]R:W-H965T<R]S:&5E
M=#<Y+GAM;%!+ 0(4 Q0    ( ).-)U4L\]-;/ ,  + +   9
M  " @72  0!X;"]W;W)K<VAE971S+W-H965T.# N>&UL4$L! A0#%     @
MDXTG5=%L#_>% @  R@<  !D              ("!YX,! 'AL+W=O<FMS:&5E
M=',O<VAE970X,2YX;6Q02P$"% ,4    " "3C2=5X5XJ'3H$  !($   &0
M            @(&CA@$ >&PO=V]R:W-H965T<R]S:&5E=#@R+GAM;%!+ 0(4
M Q0    ( ).-)U5A1D3$IP(  +0'   9              " @12+ 0!X;"]W
M;W)K<VAE971S+W-H965T.#,N>&UL4$L! A0#%     @ DXTG5=4+\C3? @
MD0H  !D              ("!\HT! 'AL+W=O<FMS:&5E=',O<VAE970X-"YX
M;6Q02P$"% ,4    " "3C2=5?SP/>S,#  #L"@  &0              @($(
MD0$ >&PO=V]R:W-H965T<R]S:&5E=#@U+GAM;%!+ 0(4 Q0    ( ).-)U5N
M)IM+1@0  '(0   9              " @7*4 0!X;"]W;W)K<VAE971S+W-H
M965T.#8N>&UL4$L! A0#%     @ DXTG50\(BEM&!   CA@  !D
M     ("![Y@! 'AL+W=O<FMS:&5E=',O<VAE970X-RYX;6Q02P$"% ,4
M" "3C2=5?KR%?M #   B%   &0              @(%LG0$ >&PO=V]R:W-H
M965T<R]S:&5E=#@X+GAM;%!+ 0(4 Q0    ( ).-)U73GD;090,  .(/   9
M              " @7.A 0!X;"]W;W)K<VAE971S+W-H965T.#DN>&UL4$L!
M A0#%     @ DXTG58B[5X<< @  L00  !D              ("!#Z4! 'AL
M+W=O<FMS:&5E=',O<VAE970Y,"YX;6Q02P$"% ,4    " "3C2=5O@^6*5$#
M   F%   #0              @ %BIP$ >&PO<W1Y;&5S+GAM;%!+ 0(4 Q0
M   ( ).-)U67BKL<P    !,"   +              "  =ZJ 0!?<F5L<R\N
M<F5L<U!+ 0(4 Q0    ( ).-)U6S0^O"4P8  +$Z   /              "
M <>K 0!X;"]W;W)K8F]O:RYX;6Q02P$"% ,4    " "3C2=5YN*DT* "   %
M-0  &@              @ %'L@$ >&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E
M;'-02P$"% ,4    " "3C2=5PH ,:SH"  !H,P  $P              @ $?
LM0$ 6T-O;G1E;G1?5'EP97-=+GAM;%!+!08     8@!B .4:  "*MP$    !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>105
<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>106
<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>107
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.22.2.2</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>236</ContextCount>
  <ElementCount>319</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>58</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>6</UnitCount>
  <MyReports>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>00090 - Document - Document And Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DocumentDocumentAndEntityInformation</Role>
      <ShortName>Document And Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>00100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets</Role>
      <ShortName>CONDENSED CONSOLIDATED BALANCE SHEETS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>00105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals</Role>
      <ShortName>CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>00200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>00300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>00305 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeParentheticals</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>00400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>00500 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>10101 - Disclosure - Description of the Business</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureDescriptionOfBusiness</Role>
      <ShortName>Description of the Business</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>10201 - Disclosure - Basis of Presentation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureBasisOfPresentation</Role>
      <ShortName>Basis of Presentation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>10301 - Disclosure - Acquisitions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitions</Role>
      <ShortName>Acquisitions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>10401 - Disclosure - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureFairValueMeasurements</Role>
      <ShortName>Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>10501 - Disclosure - Trade Accounts Receivable</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureTradeAccountsReceivable</Role>
      <ShortName>Trade Accounts Receivable</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>10601 - Disclosure - Other Receivables</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherReceivables</Role>
      <ShortName>Other Receivables</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>10701 - Disclosure - Inventory</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureInventory</Role>
      <ShortName>Inventory</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>10801 - Disclosure - Property and Equipment</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosurePropertyAndEquipment</Role>
      <ShortName>Property and Equipment</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>10901 - Disclosure - Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIntangibleAssets</Role>
      <ShortName>Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>11001 - Disclosure - Goodwill</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureGoodwill</Role>
      <ShortName>Goodwill</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>11101 - Disclosure - Accrued Liabilities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAccruedLiabilities</Role>
      <ShortName>Accrued Liabilities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>11201 - Disclosure - Long-term Debt</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLongTermDebt</Role>
      <ShortName>Long-term Debt</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>11301 - Disclosure - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLeases</Role>
      <ShortName>Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>11401 - Disclosure - Commitments, Contingencies and Guarantees</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees</Role>
      <ShortName>Commitments, Contingencies and Guarantees</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>11501 - Disclosure - Share Capital</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureShareCapital</Role>
      <ShortName>Share Capital</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>11601 - Disclosure - Earnings Per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureEarningsPerShare</Role>
      <ShortName>Earnings Per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>11701 - Disclosure - Stock-Based Compensation Plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlans</Role>
      <ShortName>Stock-Based Compensation Plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>11801 - Disclosure - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxes</Role>
      <ShortName>Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>11901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts</Role>
      <ShortName>Contract Balances, Performance Obligations and Contract Costs</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>12001 - Disclosure - Other Charges</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherCharges</Role>
      <ShortName>Other Charges</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>12101 - Disclosure - Supplemental Cash Flow Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation</Role>
      <ShortName>Supplemental Cash Flow Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>29</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>12201 - Disclosure - Segmented Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSegmentedInformation</Role>
      <ShortName>Segmented Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>20202 - Disclosure - Basis of Presentation (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies</Role>
      <ShortName>Basis of Presentation (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>30303 - Disclosure - Acquisitions (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitionsTables</Role>
      <ShortName>Acquisitions (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureAcquisitions</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>30403 - Disclosure - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureFairValueMeasurementsTables</Role>
      <ShortName>Fair Value Measurements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureFairValueMeasurements</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>30503 - Disclosure - Trade Accounts Receivable (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables</Role>
      <ShortName>Trade Accounts Receivable (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureTradeAccountsReceivable</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>30603 - Disclosure - Other Receivables (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherReceivablesTables</Role>
      <ShortName>Other Receivables (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureOtherReceivables</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>30803 - Disclosure - Property and Equipment (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables</Role>
      <ShortName>Property and Equipment (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosurePropertyAndEquipment</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>30903 - Disclosure - Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIntangibleAssetsTables</Role>
      <ShortName>Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureIntangibleAssets</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>31003 - Disclosure - Goodwill (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureGoodwillTables</Role>
      <ShortName>Goodwill (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureGoodwill</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>31103 - Disclosure - Accrued Liabilities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables</Role>
      <ShortName>Accrued Liabilities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureAccruedLiabilities</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>31303 - Disclosure - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLeasesTables</Role>
      <ShortName>Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureLeases</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>31603 - Disclosure - Earnings Per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureEarningsPerShareTables</Role>
      <ShortName>Earnings Per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureEarningsPerShare</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>31703 - Disclosure - Stock-Based Compensation Plans (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables</Role>
      <ShortName>Stock-Based Compensation Plans (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureStockBasedCompensationPlans</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>31903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables</Role>
      <ShortName>Contract Balances, Performance Obligations and Contract Costs (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>32003 - Disclosure - Other Charges (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherChargesTables</Role>
      <ShortName>Other Charges (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureOtherCharges</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>32103 - Disclosure - Supplemental Cash Flow Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables</Role>
      <ShortName>Supplemental Cash Flow Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>32203 - Disclosure - Segmented Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSegmentedInformationTables</Role>
      <ShortName>Segmented Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureSegmentedInformation</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>40301 - Disclosure - Acquisitions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitionsDetails</Role>
      <ShortName>Acquisitions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureAcquisitionsTables</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails</Role>
      <ShortName>Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails</Role>
      <ShortName>Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>40304 - Disclosure - Acquisitions - Acquired Intangible Assets Useful Lives (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails</Role>
      <ShortName>Acquisitions - Acquired Intangible Assets Useful Lives (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>40305 - Disclosure - Acquisitions - Pro Forma Results of Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails</Role>
      <ShortName>Acquisitions - Pro Forma Results of Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>40401 - Disclosure - Fair Value Measurements (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails</Role>
      <ShortName>Fair Value Measurements (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureFairValueMeasurementsTables</ParentRole>
      <Position>52</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>40402 - Disclosure - Fair Value Measurements - Derivative Instruments at Fair Value (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails</Role>
      <ShortName>Fair Value Measurements - Derivative Instruments at Fair Value (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>40403 - Disclosure - Fair Value Measurements - Changes in fair value measurements (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails</Role>
      <ShortName>Fair Value Measurements - Changes in fair value measurements (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>40501 - Disclosure - Trade Accounts Receivable - Trade Receivables (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails</Role>
      <ShortName>Trade Accounts Receivable - Trade Receivables (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>40502 - Disclosure - Trade Accounts Receivable (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails</Role>
      <ShortName>Trade Accounts Receivable (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables</ParentRole>
      <Position>56</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>40503 - Disclosure - Trade Accounts Receivable - Provision for Credit Losses (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails</Role>
      <ShortName>Trade Accounts Receivable - Provision for Credit Losses (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>40601 - Disclosure - Other Receivables (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherReceivablesDetails</Role>
      <ShortName>Other Receivables (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureOtherReceivablesTables</ParentRole>
      <Position>58</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>40602 - Disclosure - Other Receivables - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails</Role>
      <ShortName>Other Receivables - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>40801 - Disclosure - Property and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails</Role>
      <ShortName>Property and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables</ParentRole>
      <Position>60</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>40901 - Disclosure - Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIntangibleAssetsDetails</Role>
      <ShortName>Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureIntangibleAssetsTables</ParentRole>
      <Position>61</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>40902 - Disclosure - Intangible Assets - Additional information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails</Role>
      <ShortName>Intangible Assets - Additional information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>41001 - Disclosure - Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureGoodwillDetails</Role>
      <ShortName>Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureGoodwillTables</ParentRole>
      <Position>63</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>41101 - Disclosure - Accrued Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails</Role>
      <ShortName>Accrued Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables</ParentRole>
      <Position>64</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>41201 - Disclosure - Long-term Debt (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLongTermDebtDetails</Role>
      <ShortName>Long-term Debt (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureLongTermDebt</ParentRole>
      <Position>65</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>41301 - Disclosure - Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLeasesDetails</Role>
      <ShortName>Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureLeasesTables</ParentRole>
      <Position>66</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>41302 - Disclosure - Leases - Components of Operating Lease Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails</Role>
      <ShortName>Leases - Components of Operating Lease Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>41303 - Disclosure - Leases - Maturities of Operating Lease Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails</Role>
      <ShortName>Leases - Maturities of Operating Lease Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>41401 - Disclosure - Commitments, Contingencies and Guarantees (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails</Role>
      <ShortName>Commitments, Contingencies and Guarantees (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees</ParentRole>
      <Position>69</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>41501 - Disclosure - Share Capital (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureShareCapitalDetails</Role>
      <ShortName>Share Capital (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureShareCapital</ParentRole>
      <Position>70</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>41601 - Disclosure - Earnings Per Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureEarningsPerShareDetails</Role>
      <ShortName>Earnings Per Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureEarningsPerShareTables</ParentRole>
      <Position>71</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>41602 - Disclosure - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails</Role>
      <ShortName>Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>41701 - Disclosure - Stock-Based Compensation Plans - Additional information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Additional information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>73</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>41702 - Disclosure - Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>41703 - Disclosure - Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>75</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>41704 - Disclosure - Stock-Based Compensation Plans - Summary of Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Summary of Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>76</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>41705 - Disclosure - Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>41706 - Disclosure - Stock-Based Compensation Plans - Summary of Nonvested Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Summary of Nonvested Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>78</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>41707 - Disclosure - Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>79</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>41708 - Disclosure - Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails</Role>
      <ShortName>Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>80</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>41801 - Disclosure - Income Taxes - Additional information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails</Role>
      <ShortName>Income Taxes - Additional information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>41901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails</Role>
      <ShortName>Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>82</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss</Role>
      <ShortName>Contract Balances, Performance Obligations and Contract Costs (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables</ParentRole>
      <Position>83</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetails</Role>
      <ShortName>Contract Balances, Performance Obligations and Contract Costs (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables</ParentRole>
      <Position>84</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>42001 - Disclosure - Other Charges - Components of Other Charges (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails</Role>
      <ShortName>Other Charges - Components of Other Charges (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>85</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>42101 - Disclosure - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails</Role>
      <ShortName>Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>86</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>42201 - Disclosure - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails</Role>
      <ShortName>Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>87</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>42202 - Disclosure - Segmented Information - Segmented Revenue by Revenue Type (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails</Role>
      <ShortName>Segmented Information - Segmented Revenue by Revenue Type (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>88</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>42203 - Disclosure - Segmented Information - Long-lived Assets by Geographical Location (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails</Role>
      <ShortName>Segmented Information - Long-lived Assets by Geographical Location (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>89</Position>
    </Report>
    <Report instance="dsgx-20220731x6k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R90.htm</HtmlFileName>
      <LongName>42204 - Disclosure - Segmented Information - Additional information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails</Role>
      <ShortName>Segmented Information - Additional information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>90</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <Logs>
    <Log type="Warning">[ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 4 fact(s) appearing in ix:hidden were eligible for transformation: us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput, us-gaap:CommonStockSharesIssued, us-gaap:CommonStockSharesOutstanding -  dsgx-20220731xex99d1.htm 9</Log>
    <Log type="Warning">[ix-0514-Hidden-Fact-Not-Referenced] WARN: 2 fact(s) appearing in ix:hidden were not referenced by any -sec-ix-hidden style property: us-gaap:CommitmentsAndContingencies -  dsgx-20220731xex99d1.htm 9</Log>
  </Logs>
  <InputFiles>
    <File doctype="6-K" original="dsgx-20220731x6k.htm">dsgx-20220731x6k.htm</File>
    <File doctype="6-K" original="dsgx-20220731xex99d1.htm">dsgx-20220731xex99d1.htm</File>
    <File>dsgx-20220731.xsd</File>
    <File>dsgx-20220731_cal.xml</File>
    <File>dsgx-20220731_def.xml</File>
    <File>dsgx-20220731_lab.xml</File>
    <File>dsgx-20220731_pre.xml</File>
    <File>dsgx-20220731xex99d2.htm</File>
  </InputFiles>
  <SupplementalFiles>
    <File>dsgx-20220731xex99d1001.jpg</File>
    <File>dsgx-20220731xex99d1002.jpg</File>
    <File>dsgx-20220731xex99d1028.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="894">http://fasb.org/us-gaap/2021-01-31</BaseTaxonomy>
    <BaseTaxonomy items="8">http://xbrl.sec.gov/dei/2021q4</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>110
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "instance": {
  "dsgx-20220731x6k.htm dsgx-20220731xex99d1.htm": {
   "axisCustom": 0,
   "axisStandard": 18,
   "contextCount": 236,
   "dts": {
    "calculationLink": {
     "local": [
      "dsgx-20220731_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "dsgx-20220731_def.xml"
     ]
    },
    "inline": {
     "local": [
      "dsgx-20220731x6k.htm",
      "dsgx-20220731xex99d1.htm"
     ]
    },
    "labelLink": {
     "local": [
      "dsgx-20220731_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "dsgx-20220731_pre.xml"
     ]
    },
    "schema": {
     "local": [
      "dsgx-20220731.xsd",
      "reference-2009-12-16.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/arcrole/esma-arcrole-2018-11-21.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd",
      "https://xbrl.fasb.org/srt/2021/elts/srt-roles-2021-01-31.xsd",
      "https://xbrl.fasb.org/srt/2021/elts/srt-types-2021-01-31.xsd",
      "https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd",
      "https://xbrl.fasb.org/us-gaap/2021/elts/us-roles-2021-01-31.xsd",
      "https://xbrl.fasb.org/us-gaap/2021/elts/us-types-2021-01-31.xsd",
      "https://xbrl.sec.gov/country/2021/country-2021.xsd",
      "https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd"
     ]
    }
   },
   "elementCount": 582,
   "entityCount": 1,
   "hidden": {
    "http://fasb.org/us-gaap/2021-01-31": 6,
    "http://xbrl.sec.gov/dei/2021q4": 6,
    "total": 12
   },
   "keyCustom": 43,
   "keyStandard": 276,
   "memberCustom": 24,
   "memberStandard": 32,
   "nsprefix": "dsgx",
   "nsuri": "http://www.descartes.com/20220731",
   "report": {
    "R1": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731x6k.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "document",
     "isDefault": "true",
     "longName": "00090 - Document - Document And Entity Information",
     "role": "http://www.descartes.com/role/DocumentDocumentAndEntityInformation",
     "shortName": "Document And Entity Information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731x6k.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R10": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10201 - Disclosure - Basis of Presentation",
     "role": "http://www.descartes.com/role/DisclosureBasisOfPresentation",
     "shortName": "Basis of Presentation",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R11": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10301 - Disclosure - Acquisitions",
     "role": "http://www.descartes.com/role/DisclosureAcquisitions",
     "shortName": "Acquisitions",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R12": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10401 - Disclosure - Fair Value Measurements",
     "role": "http://www.descartes.com/role/DisclosureFairValueMeasurements",
     "shortName": "Fair Value Measurements",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R13": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10501 - Disclosure - Trade Accounts Receivable",
     "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivable",
     "shortName": "Trade Accounts Receivable",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R14": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dsgx:OtherReceivablesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10601 - Disclosure - Other Receivables",
     "role": "http://www.descartes.com/role/DisclosureOtherReceivables",
     "shortName": "Other Receivables",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dsgx:OtherReceivablesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R15": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10701 - Disclosure - Inventory",
     "role": "http://www.descartes.com/role/DisclosureInventory",
     "shortName": "Inventory",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R16": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10801 - Disclosure - Property and Equipment",
     "role": "http://www.descartes.com/role/DisclosurePropertyAndEquipment",
     "shortName": "Property and Equipment",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R17": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10901 - Disclosure - Intangible Assets",
     "role": "http://www.descartes.com/role/DisclosureIntangibleAssets",
     "shortName": "Intangible Assets",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R18": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11001 - Disclosure - Goodwill",
     "role": "http://www.descartes.com/role/DisclosureGoodwill",
     "shortName": "Goodwill",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R19": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11101 - Disclosure - Accrued Liabilities",
     "role": "http://www.descartes.com/role/DisclosureAccruedLiabilities",
     "shortName": "Accrued Liabilities",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R2": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS",
     "role": "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets",
     "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R20": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11201 - Disclosure - Long-term Debt",
     "role": "http://www.descartes.com/role/DisclosureLongTermDebt",
     "shortName": "Long-term Debt",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R21": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11301 - Disclosure - Leases",
     "role": "http://www.descartes.com/role/DisclosureLeases",
     "shortName": "Leases",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R22": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11401 - Disclosure - Commitments, Contingencies and Guarantees",
     "role": "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees",
     "shortName": "Commitments, Contingencies and Guarantees",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R23": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11501 - Disclosure - Share Capital",
     "role": "http://www.descartes.com/role/DisclosureShareCapital",
     "shortName": "Share Capital",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R24": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11601 - Disclosure - Earnings Per Share",
     "role": "http://www.descartes.com/role/DisclosureEarningsPerShare",
     "shortName": "Earnings Per Share",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R25": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11701 - Disclosure - Stock-Based Compensation Plans",
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlans",
     "shortName": "Stock-Based Compensation Plans",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R26": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11801 - Disclosure - Income Taxes",
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxes",
     "shortName": "Income Taxes",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R27": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "11901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs",
     "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts",
     "shortName": "Contract Balances, Performance Obligations and Contract Costs",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R28": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "12001 - Disclosure - Other Charges",
     "role": "http://www.descartes.com/role/DisclosureOtherCharges",
     "shortName": "Other Charges",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R29": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "12101 - Disclosure - Supplemental Cash Flow Information",
     "role": "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation",
     "shortName": "Supplemental Cash Flow Information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R3": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:CommonStockSharesIssued",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals)",
     "role": "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals",
     "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:CommonStockSharesIssued",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA",
      "xsiNil": "false"
     }
    },
    "R30": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "12201 - Disclosure - Segmented Information",
     "role": "http://www.descartes.com/role/DisclosureSegmentedInformation",
     "shortName": "Segmented Information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R31": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "20202 - Disclosure - Basis of Presentation (Policies)",
     "role": "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies",
     "shortName": "Basis of Presentation (Policies)",
     "subGroupType": "policies",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R32": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30303 - Disclosure - Acquisitions (Tables)",
     "role": "http://www.descartes.com/role/DisclosureAcquisitionsTables",
     "shortName": "Acquisitions (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R33": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30403 - Disclosure - Fair Value Measurements (Tables)",
     "role": "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables",
     "shortName": "Fair Value Measurements (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R34": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30503 - Disclosure - Trade Accounts Receivable (Tables)",
     "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables",
     "shortName": "Trade Accounts Receivable (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R35": {
     "firstAnchor": {
      "ancestors": [
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dsgx:OtherReceivablesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30603 - Disclosure - Other Receivables (Tables)",
     "role": "http://www.descartes.com/role/DisclosureOtherReceivablesTables",
     "shortName": "Other Receivables (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dsgx:OtherReceivablesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R36": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30803 - Disclosure - Property and Equipment (Tables)",
     "role": "http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables",
     "shortName": "Property and Equipment (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R37": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "30903 - Disclosure - Intangible Assets (Tables)",
     "role": "http://www.descartes.com/role/DisclosureIntangibleAssetsTables",
     "shortName": "Intangible Assets (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R38": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:GoodwillDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "31003 - Disclosure - Goodwill (Tables)",
     "role": "http://www.descartes.com/role/DisclosureGoodwillTables",
     "shortName": "Goodwill (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:GoodwillDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R39": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "31103 - Disclosure - Accrued Liabilities (Tables)",
     "role": "http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables",
     "shortName": "Accrued Liabilities (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R4": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS",
     "role": "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R40": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "31303 - Disclosure - Leases (Tables)",
     "role": "http://www.descartes.com/role/DisclosureLeasesTables",
     "shortName": "Leases (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R41": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "31603 - Disclosure - Earnings Per Share (Tables)",
     "role": "http://www.descartes.com/role/DisclosureEarningsPerShareTables",
     "shortName": "Earnings Per Share (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R42": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "31703 - Disclosure - Stock-Based Compensation Plans (Tables)",
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables",
     "shortName": "Stock-Based Compensation Plans (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R43": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "31903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Tables)",
     "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables",
     "shortName": "Contract Balances, Performance Obligations and Contract Costs (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R44": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "32003 - Disclosure - Other Charges (Tables)",
     "role": "http://www.descartes.com/role/DisclosureOtherChargesTables",
     "shortName": "Other Charges (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R45": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "32103 - Disclosure - Supplemental Cash Flow Information (Tables)",
     "role": "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables",
     "shortName": "Supplemental Cash Flow Information (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R46": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "32203 - Disclosure - Segmented Information (Tables)",
     "role": "http://www.descartes.com/role/DisclosureSegmentedInformationTables",
     "shortName": "Segmented Information (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R47": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40301 - Disclosure - Acquisitions (Details)",
     "role": "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
     "shortName": "Acquisitions (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_26_2021_To_2_26_2021_us-gaap_BusinessAcquisitionAxis_dsgx_QuestawebMember_x__u-pV_nEq-QJ3t-xKcyg",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R48": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)",
     "role": "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
     "shortName": "Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R49": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAcquiredFromAcquisition",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)",
     "role": "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
     "shortName": "Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_JKTxNdnz3EGpOvKx4otnUA",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAcquiredFromAcquisition",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R5": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME",
     "role": "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R50": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_cT23BQJCOEuG3s0rXxDfhA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40304 - Disclosure - Acquisitions - Acquired Intangible Assets Useful Lives (Details)",
     "role": "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
     "shortName": "Acquisitions - Acquired Intangible Assets Useful Lives (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_cT23BQJCOEuG3s0rXxDfhA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R51": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:BusinessAcquisitionProFormaInformationTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessAcquisitionsProFormaRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40305 - Disclosure - Acquisitions - Pro Forma Results of Operations (Details)",
     "role": "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails",
     "shortName": "Acquisitions - Pro Forma Results of Operations (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:BusinessAcquisitionProFormaInformationTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessAcquisitionsProFormaRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R52": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "dsgx:DerivativeInstrumentSharesOfCommonStockHeld",
      "reportCount": 1,
      "unitRef": "Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40401 - Disclosure - Fair Value Measurements (Details)",
     "role": "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
     "shortName": "Fair Value Measurements (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_us-gaap_IncomeStatementLocationAxis_us-gaap_GeneralAndAdministrativeExpenseMember_u8Eak7lD3EC3U2Nh5WI3gw",
      "decimals": "-5",
      "lang": null,
      "name": "dsgx:ExpensesAndRecoveriesNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R53": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DerivativeAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40402 - Disclosure - Fair Value Measurements - Derivative Instruments at Fair Value (Details)",
     "role": "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails",
     "shortName": "Fair Value Measurements - Derivative Instruments at Fair Value (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DerivativeAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R54": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pFzojNMomkGqcY8qpc5UZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40403 - Disclosure - Fair Value Measurements - Changes in fair value measurements (Details)",
     "role": "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails",
     "shortName": "Fair Value Measurements - Changes in fair value measurements (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_pFzojNMomkGqcY8qpc5UZg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R55": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40501 - Disclosure - Trade Accounts Receivable - Trade Receivables (Details)",
     "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails",
     "shortName": "Trade Accounts Receivable - Trade Receivables (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccountsReceivableGrossCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R56": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:UnbilledReceivablesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40502 - Disclosure - Trade Accounts Receivable (Details)",
     "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails",
     "shortName": "Trade Accounts Receivable (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:UnbilledReceivablesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R57": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40503 - Disclosure - Trade Accounts Receivable - Provision for Credit Losses (Details)",
     "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails",
     "shortName": "Trade Accounts Receivable - Provision for Credit Losses (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:ProvisionForDoubtfulAccounts",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R58": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "dsgx:OtherReceivablesTableTextBlock",
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40601 - Disclosure - Other Receivables (Details)",
     "role": "http://www.descartes.com/role/DisclosureOtherReceivablesDetails",
     "shortName": "Other Receivables (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "dsgx:OtherReceivablesTableTextBlock",
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R59": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "dsgx:AmountsRecoverableFromFundsHeldInEscrow",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40602 - Disclosure - Other Receivables - Additional Information (Details)",
     "role": "http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails",
     "shortName": "Other Receivables - Additional Information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "dsgx:OtherReceivablesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "dsgx:AmountsRecoverableFromFundsHeldInEscrow",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R6": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00305 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)",
     "role": "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeParentheticals",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R60": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40801 - Disclosure - Property and Equipment (Details)",
     "role": "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails",
     "shortName": "Property and Equipment (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R61": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40901 - Disclosure - Intangible Assets (Details)",
     "role": "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails",
     "shortName": "Intangible Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R62": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsNet",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "40902 - Disclosure - Intangible Assets - Additional information (Details)",
     "role": "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails",
     "shortName": "Intangible Assets - Additional information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R63": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41001 - Disclosure - Goodwill (Details)",
     "role": "http://www.descartes.com/role/DisclosureGoodwillDetails",
     "shortName": "Goodwill (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "us-gaap:GoodwillDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_1_31_2021__kQXoKs9nka2lPH4vSYNEQ",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R64": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41101 - Disclosure - Accrued Liabilities (Details)",
     "role": "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails",
     "shortName": "Accrued Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R65": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:LettersOfCreditOutstandingAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41201 - Disclosure - Long-term Debt (Details)",
     "role": "http://www.descartes.com/role/DisclosureLongTermDebtDetails",
     "shortName": "Long-term Debt (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:LettersOfCreditOutstandingAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R66": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseRemainingLeaseTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41301 - Disclosure - Leases (Details)",
     "role": "http://www.descartes.com/role/DisclosureLeasesDetails",
     "shortName": "Leases (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseRemainingLeaseTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R67": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LeaseCostTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseCost",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41302 - Disclosure - Leases - Components of Operating Lease Expense (Details)",
     "role": "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails",
     "shortName": "Leases - Components of Operating Lease Expense (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LeaseCostTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseCost",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R68": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41303 - Disclosure - Leases - Maturities of Operating Lease Liabilities (Details)",
     "role": "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails",
     "shortName": "Leases - Maturities of Operating Lease Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "us-gaap:LesseeOperatingLeasesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R69": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41401 - Disclosure - Commitments, Contingencies and Guarantees (Details)",
     "role": "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
     "shortName": "Commitments, Contingencies and Guarantees (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R7": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_yTpa1AUx-Eyj5brPEZ29AQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY",
     "role": "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_1_31_2021_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_yTpa1AUx-Eyj5brPEZ29AQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R70": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:ProceedsFromStockOptionsExercised",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41501 - Disclosure - Share Capital (Details)",
     "role": "http://www.descartes.com/role/DisclosureShareCapitalDetails",
     "shortName": "Share Capital (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:ProceedsFromStockOptionsExercised",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R71": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_U28XRtBbs0muZk8nwV65Qw",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41601 - Disclosure - Earnings Per Share (Details)",
     "role": "http://www.descartes.com/role/DisclosureEarningsPerShareDetails",
     "shortName": "Earnings Per Share (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_U28XRtBbs0muZk8nwV65Qw",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA",
      "xsiNil": "false"
     }
    },
    "R72": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41602 - Disclosure - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)",
     "role": "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
     "shortName": "Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_gKtXqmCtHEy0rsHiVP-Smw",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA",
      "xsiNil": "false"
     }
    },
    "R73": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41701 - Disclosure - Stock-Based Compensation Plans - Additional information (Details)",
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
     "shortName": "Stock-Based Compensation Plans - Additional information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R74": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41702 - Disclosure - Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)",
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails",
     "shortName": "Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R75": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41703 - Disclosure - Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)",
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails",
     "shortName": "Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ",
      "xsiNil": "false"
     }
    },
    "R76": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41704 - Disclosure - Stock-Based Compensation Plans - Summary of Option Activity (Details)",
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
     "shortName": "Stock-Based Compensation Plans - Summary of Option Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R77": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41705 - Disclosure - Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)",
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
     "shortName": "Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_1_30_2022_To_1_30_2022_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_Cvlh80GwZkONLsvFvRGc9g",
      "decimals": null,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R78": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
      "reportCount": 1,
      "unitRef": "Unit_Standard_shares_1pxOU8DoY0KDme5MYB51LA",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41706 - Disclosure - Stock-Based Compensation Plans - Summary of Nonvested Share (Details)",
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails",
     "shortName": "Stock-Based Compensation Plans - Summary of Nonvested Share (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R79": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
      "reportCount": 1,
      "unitRef": "Unit_Divide_USD_shares_RCNBH1Sm9karNpKihRsnSw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41707 - Disclosure - Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)",
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails",
     "shortName": "Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_Fzmo3iMH60O7APmO8klyyg",
      "decimals": null,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R8": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "00500 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "role": "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:Depreciation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R80": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dsgx:CRSUAwardsWeightedAverageContractualLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41708 - Disclosure - Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)",
     "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails",
     "shortName": "Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dsgx:CRSUAwardsWeightedAverageContractualLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R81": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41801 - Disclosure - Income Taxes - Additional information (Details)",
     "role": "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails",
     "shortName": "Income Taxes - Additional information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_pure_q7kyQrq2X0COVwMcMbnSgQ",
      "xsiNil": "false"
     }
    },
    "R82": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ContractWithCustomerLiability",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)",
     "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails",
     "shortName": "Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ContractWithCustomerLiability",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R83": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details)",
     "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss",
     "shortName": "Contract Balances, Performance Obligations and Contract Costs (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R84": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:CapitalizedContractCostNet",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details)",
     "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetails",
     "shortName": "Contract Balances, Performance Obligations and Contract Costs (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_1_31_2022_nP1t5WLACEir2un0O2rcCQ",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:CapitalizedContractCostNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R85": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock",
       "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessCombinationAcquisitionRelatedCosts",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "42001 - Disclosure - Other Charges - Components of Other Charges (Details)",
     "role": "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails",
     "shortName": "Other Charges - Components of Other Charges (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock",
       "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R86": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncreaseDecreaseInAccountsReceivable",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "42101 - Disclosure - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)",
     "role": "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails",
     "shortName": "Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
       "us-gaap:CashFlowSupplementalDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncreaseDecreaseInAccountsReceivable",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R87": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "42201 - Disclosure - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)",
     "role": "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails",
     "shortName": "Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_srt_StatementGeographicalAxis_country_US_LM8UEWr-akK4uz9XAMOzEw",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R88": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_W8l1wx0Es0qT7ybuhCAbjg",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "42202 - Disclosure - Segmented Information - Segmented Revenue by Revenue Type (Details)",
     "role": "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails",
     "shortName": "Segmented Information - Segmented Revenue by Revenue Type (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_5_1_2022_To_7_31_2022_srt_ProductOrServiceAxis_us-gaap_ServiceMember_A7WtsFHS9kmXI4q2dGn2gA",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R89": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NoncurrentAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "42203 - Disclosure - Segmented Information - Long-lived Assets by Geographical Location (Details)",
     "role": "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
     "shortName": "Segmented Information - Long-lived Assets by Geographical Location (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "As_Of_7_31_2022_xJkQfC0_nkawkJ8Y1W9uWw",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NoncurrentAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_USD_6HUqWRIVTke1pUYXOZGElw",
      "xsiNil": "false"
     }
    },
    "R9": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "10101 - Disclosure - Description of the Business",
     "role": "http://www.descartes.com/role/DisclosureDescriptionOfBusiness",
     "shortName": "Description of the Business",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R90": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfReportableSegments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_segment_Utkw4iHSj0-_Y-UHchFxgQ",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "42204 - Disclosure - Segmented Information - Additional information (Details)",
     "role": "http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails",
     "shortName": "Segmented Information - Additional information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "p",
       "us-gaap:SegmentReportingDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "baseRef": "dsgx-20220731xex99d1.htm",
      "contextRef": "Duration_2_1_2022_To_7_31_2022_ccq7XMWXXEGUCNO0RL-xSA",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfReportableSegments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Unit_Standard_segment_Utkw4iHSj0-_Y-UHchFxgQ",
      "xsiNil": "false"
     }
    }
   },
   "segmentCount": 58,
   "tag": {
    "country_CA": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Canada"
       }
      }
     },
     "localname": "CA",
     "nsuri": "http://xbrl.sec.gov/country/2021",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "country_US": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "United States"
       }
      }
     },
     "localname": "US",
     "nsuri": "http://xbrl.sec.gov/country/2021",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dei_AddressTypeDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "An entity may have several addresses for different purposes and this domain represents all such types.",
        "label": "Address Type [Domain]"
       }
      }
     },
     "localname": "AddressTypeDomain",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "domainItemType"
    },
    "dei_AmendmentFlag": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.",
        "label": "Amendment Flag"
       }
      }
     },
     "localname": "AmendmentFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_AnnualInformationForm": {
     "auth_ref": [
      "r590"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag with value true on a form if it is an annual report containing an annual information form.",
        "label": "Annual Information Form"
       }
      }
     },
     "localname": "AnnualInformationForm",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_AuditedAnnualFinancialStatements": {
     "auth_ref": [
      "r590"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag with value true on a form if it is an annual report containing audited financial statements.",
        "label": "Audited Annual Financial Statements"
       }
      }
     },
     "localname": "AuditedAnnualFinancialStatements",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_AuditorFirmId": {
     "auth_ref": [
      "r588",
      "r589",
      "r590"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "PCAOB issued Audit Firm Identifier",
        "label": "Auditor Firm ID"
       }
      }
     },
     "localname": "AuditorFirmId",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "nonemptySequenceNumberItemType"
    },
    "dei_AuditorLocation": {
     "auth_ref": [
      "r588",
      "r589",
      "r590"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Location"
       }
      }
     },
     "localname": "AuditorLocation",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "internationalNameItemType"
    },
    "dei_AuditorName": {
     "auth_ref": [
      "r588",
      "r589",
      "r590"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Name"
       }
      }
     },
     "localname": "AuditorName",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "internationalNameItemType"
    },
    "dei_BusinessContactMember": {
     "auth_ref": [
      "r589",
      "r590"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Business contact for the entity",
        "label": "Business Contact [Member]"
       }
      }
     },
     "localname": "BusinessContactMember",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "domainItemType"
    },
    "dei_CityAreaCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Area code of city",
        "label": "City Area Code"
       }
      }
     },
     "localname": "CityAreaCode",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_ContactPersonnelName": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of contact personnel",
        "label": "Contact Personnel Name"
       }
      }
     },
     "localname": "ContactPersonnelName",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_CurrentFiscalYearEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "End date of current fiscal year in the format --MM-DD.",
        "label": "Current Fiscal Year End Date"
       }
      }
     },
     "localname": "CurrentFiscalYearEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "gMonthDayItemType"
    },
    "dei_DocumentAnnualReport": {
     "auth_ref": [
      "r588",
      "r589",
      "r590"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as an annual report.",
        "label": "Document Annual Report"
       }
      }
     },
     "localname": "DocumentAnnualReport",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentFiscalPeriodFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Document Fiscal Period Focus"
       }
      }
     },
     "localname": "DocumentFiscalPeriodFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "fiscalPeriodItemType"
    },
    "dei_DocumentFiscalYearFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Document Fiscal Year Focus"
       }
      }
     },
     "localname": "DocumentFiscalYearFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "gYearItemType"
    },
    "dei_DocumentInformationLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Document Information [Line Items]"
       }
      }
     },
     "localname": "DocumentInformationLineItems",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "stringItemType"
    },
    "dei_DocumentInformationTable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Container to support the formal attachment of each official or unofficial, public or private document as part of a submission package.",
        "label": "Document Information [Table]"
       }
      }
     },
     "localname": "DocumentInformationTable",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "xbrltype": "stringItemType"
    },
    "dei_DocumentPeriodEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Document Period End Date"
       }
      }
     },
     "localname": "DocumentPeriodEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "dateItemType"
    },
    "dei_DocumentRegistrationStatement": {
     "auth_ref": [
      "r584"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as a registration statement.",
        "label": "Document Registration Statement"
       }
      }
     },
     "localname": "DocumentRegistrationStatement",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentType": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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'.",
        "label": "Document Type"
       }
      }
     },
     "localname": "DocumentType",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "submissionTypeItemType"
    },
    "dei_EntityAddressAddressLine1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name",
        "label": "Entity Address, Address Line One"
       }
      }
     },
     "localname": "EntityAddressAddressLine1",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressAddressLine2": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 2 such as Street or Suite number",
        "label": "Entity Address, Address Line Two"
       }
      }
     },
     "localname": "EntityAddressAddressLine2",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressAddressLine3": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 3 such as an Office Park",
        "label": "Entity Address, Address Line Three"
       }
      }
     },
     "localname": "EntityAddressAddressLine3",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressCityOrTown": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the City or Town",
        "label": "Entity Address, City or Town"
       }
      }
     },
     "localname": "EntityAddressCityOrTown",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressCountry": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "ISO 3166-1 alpha-2 country code.",
        "label": "Entity Address, Country"
       }
      }
     },
     "localname": "EntityAddressCountry",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "countryCodeItemType"
    },
    "dei_EntityAddressPostalZipCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Code for the postal or zip code",
        "label": "Entity Address, Postal Zip Code"
       }
      }
     },
     "localname": "EntityAddressPostalZipCode",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressStateOrProvince": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the state or province.",
        "label": "Entity Address, State or Province"
       }
      }
     },
     "localname": "EntityAddressStateOrProvince",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "stateOrProvinceItemType"
    },
    "dei_EntityAddressesAddressTypeAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The axis of a table defines the relationship between the domain members or categories in the table and the line items or concepts that complete the table.",
        "label": "Entity Addresses, Address Type [Axis]"
       }
      }
     },
     "localname": "EntityAddressesAddressTypeAxis",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "stringItemType"
    },
    "dei_EntityCentralIndexKey": {
     "auth_ref": [
      "r586"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.",
        "label": "Entity Central Index Key"
       }
      }
     },
     "localname": "EntityCentralIndexKey",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "centralIndexKeyItemType"
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Entity Common Stock, Shares Outstanding (in shares)"
       }
      }
     },
     "localname": "EntityCommonStockSharesOutstanding",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "sharesItemType"
    },
    "dei_EntityCurrentReportingStatus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Entity Current Reporting Status"
       }
      }
     },
     "localname": "EntityCurrentReportingStatus",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains.",
        "label": "Entity [Domain]"
       }
      }
     },
     "localname": "EntityDomain",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "domainItemType"
    },
    "dei_EntityEmergingGrowthCompany": {
     "auth_ref": [
      "r586"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate if registrant meets the emerging growth company criteria.",
        "label": "Entity Emerging Growth Company"
       }
      }
     },
     "localname": "EntityEmergingGrowthCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityFileNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Entity File Number"
       }
      }
     },
     "localname": "EntityFileNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "fileNumberItemType"
    },
    "dei_EntityFilerCategory": {
     "auth_ref": [
      "r586"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Entity Filer Category"
       }
      }
     },
     "localname": "EntityFilerCategory",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "filerCategoryItemType"
    },
    "dei_EntityIncorporationStateCountryCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Two-character EDGAR code representing the state or country of incorporation.",
        "label": "Entity Incorporation, State or Country Code"
       }
      }
     },
     "localname": "EntityIncorporationStateCountryCode",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "edgarStateCountryItemType"
    },
    "dei_EntityInteractiveDataCurrent": {
     "auth_ref": [
      "r592"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Entity Interactive Data Current"
       }
      }
     },
     "localname": "EntityInteractiveDataCurrent",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityRegistrantName": {
     "auth_ref": [
      "r586"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.",
        "label": "Entity Registrant Name"
       }
      }
     },
     "localname": "EntityRegistrantName",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityShellCompany": {
     "auth_ref": [
      "r586"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.",
        "label": "Entity Shell Company"
       }
      }
     },
     "localname": "EntityShellCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntitySmallBusiness": {
     "auth_ref": [
      "r586"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).",
        "label": "Entity Small Business"
       }
      }
     },
     "localname": "EntitySmallBusiness",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityVoluntaryFilers": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Entity Voluntary Filers"
       }
      }
     },
     "localname": "EntityVoluntaryFilers",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "auth_ref": [
      "r593"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Entity Well-known Seasoned Issuer"
       }
      }
     },
     "localname": "EntityWellKnownSeasonedIssuer",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_LegalEntityAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The set of legal entities associated with a report.",
        "label": "Legal Entity [Axis]"
       }
      }
     },
     "localname": "LegalEntityAxis",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "stringItemType"
    },
    "dei_LocalPhoneNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Local phone number for entity.",
        "label": "Local Phone Number"
       }
      }
     },
     "localname": "LocalPhoneNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_Security12bTitle": {
     "auth_ref": [
      "r585"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Title of a 12(b) registered security.",
        "label": "Title of 12(b) Security"
       }
      }
     },
     "localname": "Security12bTitle",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "securityTitleItemType"
    },
    "dei_SecurityExchangeName": {
     "auth_ref": [
      "r587"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the Exchange on which a security is registered.",
        "label": "Security Exchange Name"
       }
      }
     },
     "localname": "SecurityExchangeName",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "edgarExchangeCodeItemType"
    },
    "dei_TradingSymbol": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Trading symbol of an instrument as listed on an exchange.",
        "label": "Trading Symbol"
       }
      }
     },
     "localname": "TradingSymbol",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "tradingSymbolItemType"
    },
    "dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of effects of foreign exchange currency movement against the allowance.",
        "label": "dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange",
        "verboseLabel": "Effect of movements in foreign exchange"
       }
      }
     },
     "localname": "AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_Acquisitions2022Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the 2022 acquisitions.",
        "label": "Acquisitions 2022 [Member]"
       }
      }
     },
     "localname": "Acquisitions2022Member",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_AmountsRecoverableFromFundsHeldInEscrow": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount recoverable from funds held In escrow related to acquisitions.",
        "label": "Amounts Recoverable from Funds Held in Escrow",
        "terseLabel": "Amounts Recoverable from Funds Held in Escrow"
       }
      }
     },
     "localname": "AmountsRecoverableFromFundsHeldInEscrow",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Business acquisition cost of acquired entity working capital adjustments.",
        "label": "Business Acquisition Cost Of Acquired Entity Working Capital Adjustments",
        "terseLabel": "Net working capital adjustments payable"
       }
      }
     },
     "localname": "BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_BusinessCombinationConsiderationTransferredPayable": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities incurred by the acquirer as part of consideration payable transferred in a business combination.",
        "label": "Consideration payable",
        "terseLabel": "Consideration payable"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferredPayable",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the period (following acquisition) over which contingent consideration is to be paid by the reporting entity if the acquired entity meets certain performance targets.",
        "label": "dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets",
        "terseLabel": "Business Combination, Contingent Consideration Arrangements, Period for Revenue Performance Targets (Year)",
        "verboseLabel": "Period for revenue performance targets"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating lease obligation assumed in business combination.",
        "label": "dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation",
        "verboseLabel": "Lease obligations"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long term income tax liability attributable to taxable temporary differences assumed at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Long-term Income Tax Liability",
        "negatedLabel": "Long-term income taxes payable"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount recognized as of the acquisition date for the identifiable tangible assets acquired in excess of (less than) the aggregate liabilities assumed.",
        "label": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet",
        "negatedLabel": "Net tangible assets (liabilities) assumed"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_CRSUAwardNonvestedNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of nonvested CRSU awards.",
        "label": "Non-vested, CRSU (in shares)"
       }
      }
     },
     "localname": "CRSUAwardNonvestedNumber",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dsgx_CRSUAwardNonvestedWeightedAverageContractualLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average remaining contractual life of nonvested CRSU awards.",
        "label": "Non-vested, Weighted-Average Remaining Contractual Life, CRSU (Year)"
       }
      }
     },
     "localname": "CRSUAwardNonvestedWeightedAverageContractualLife",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "dsgx_CRSUAwardsForfeitedInPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to CRSU awards forfeited in period.",
        "label": "Number of Units Forfeited, CRSU (in shares)",
        "negatedLabel": "Number of Units Forfeited, CRSU (in shares)"
       }
      }
     },
     "localname": "CRSUAwardsForfeitedInPeriod",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dsgx_CRSUAwardsGrantsInPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of CRSU grants in period.",
        "label": "Number of Units Granted, CRSU (in shares)"
       }
      }
     },
     "localname": "CRSUAwardsGrantsInPeriod",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dsgx_CRSUAwardsOutstandingNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of CRSU awards outstanding.",
        "label": "Number of Units Outstanding, CRSU (in shares)",
        "periodEndLabel": "Number of Units Outstanding, CRSU (in shares)"
       }
      }
     },
     "localname": "CRSUAwardsOutstandingNumber",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dsgx_CRSUAwardsVestedAndSettledInCash": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of CRSU awards vested and settled in cash.",
        "label": "Number of Units Vested and settled in cash, CRSU (in shares)",
        "negatedLabel": "Number of Units Vested and settled in cash, CRSU (in shares)"
       }
      }
     },
     "localname": "CRSUAwardsVestedAndSettledInCash",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dsgx_CRSUAwardsWeightedAverageContractualLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average remaining contractual life of CRSU awards.",
        "label": "Weighted-Average Remaining Contractual Life, CRSU (Year)"
       }
      }
     },
     "localname": "CRSUAwardsWeightedAverageContractualLife",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "dsgx_CanadaOrUsPrimeRateBaOrLiborMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the Canada or US prime rate, Bankers' Acceptance (BA) or London Interbank Offered Rate (LIBOR).",
        "label": "Canada or US Prime Rate, BA, or LIBOR [Member]"
       }
      }
     },
     "localname": "CanadaOrUsPrimeRateBaOrLiborMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_CashSettledRestrictedShareUnitMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cash-Settled Restricted Share Unit [Member]",
        "label": "Cash-Settled Restricted Share Unit [Member]"
       }
      }
     },
     "localname": "CashSettledRestrictedShareUnitMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_CashSettledRestrictedShareUnitsCompensationExpense": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash settled restricted share units compensation expense.",
        "label": "Cash Settled Restricted Share Units Compensation Expense",
        "terseLabel": "Cash Settled Restricted Share Units Compensation Expense"
       }
      }
     },
     "localname": "CashSettledRestrictedShareUnitsCompensationExpense",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash settled restricted share units nonvested, total compensation cost not yet recognized.",
        "label": "dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized",
        "terseLabel": "Cash Settled Restricted Share Units Nonvested Total Compensation Cost Not Yet Recognized"
       }
      }
     },
     "localname": "CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "N/A",
        "label": "Commitments, Contingencies and Guarantees"
       }
      }
     },
     "localname": "CommitmentsContingenciesAndGuaranteesDisclosureAbstract",
     "nsuri": "http://www.descartes.com/20220731",
     "xbrltype": "stringItemType"
    },
    "dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) to the contract asset during the period attributable to the effect of movements in foreign exchange.",
        "label": "dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange",
        "terseLabel": "Effect of movements in foreign exchange"
       }
      }
     },
     "localname": "ContractWithCustomerAssetIncreaseDecreaseForForeignExchange",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in the contract asset during the period from term licenses recognized as revenue during the period, net of amounts transferred to trade receivables.",
        "label": "Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables",
        "terseLabel": "Increases as a result of revenue recognized during the period, net of amounts transferred to trade receivables"
       }
      }
     },
     "localname": "ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of contract asset before the adoption of ASC 606.",
        "label": "dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606",
        "periodStartLabel": "Balance"
       }
      }
     },
     "localname": "ContractWithCustomerContractAssetBeforeAdoptionOfASC606",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from movements in foreign exchange.",
        "label": "Effect of movements in foreign exchange",
        "terseLabel": "Effect of movements in foreign exchange"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from deferral of revenue.",
        "label": "Deferral of revenue",
        "terseLabel": "Deferral of revenue"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to CORE, Kontainers, ShipTrack, GreenMile, NetCHB and XPS.",
        "label": "CORE, Kontainers, ShipTrack, GreenMile, NetCHB And XPS [Member]"
       }
      }
     },
     "localname": "CoreKontainersShiptrackGreenmileNetchbAndXpsMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_CoreTransportTechnologiesNzLimitedMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents Core Transport Technologies NZ Limited (\"CORE\").",
        "label": "Core Transport Technologies NZ Limited [Member]"
       }
      }
     },
     "localname": "CoreTransportTechnologiesNzLimitedMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_DeferredShareUnitLiabilityNumberOfCommonShares": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of common shares for which there is a deferred share unit liability.",
        "label": "Deferred Share Unit Liability, Number of Common Shares (in shares)",
        "terseLabel": "Deferred Share Unit Liability, Number of Common Shares (in shares)"
       }
      }
     },
     "localname": "DeferredShareUnitLiabilityNumberOfCommonShares",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dsgx_DeferredShareUnitPlanMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A plan with deferred share units.",
        "label": "Deferred Share Unit Plan [Member]"
       }
      }
     },
     "localname": "DeferredShareUnitPlanMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_DeferredShareUnitsCompensationExpense": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The deferred share units compensation expense.",
        "label": "Deferred Share Units Compensation Expense",
        "terseLabel": "Deferred Share Units Compensation Expense"
       }
      }
     },
     "localname": "DeferredShareUnitsCompensationExpense",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_DeferredShareUnitsGrantsInPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of deferred share units granted in period.",
        "label": "Deferred Share Units Grants In Period (in shares)",
        "terseLabel": "Deferred Share Units Grants In Period (in shares)"
       }
      }
     },
     "localname": "DeferredShareUnitsGrantsInPeriod",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The deferred share units nonvested, total compensation cost not yet recognized.",
        "label": "dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized",
        "terseLabel": "Deferred Share Units Nonvested Total Compensation Cost Not Yet Recognized"
       }
      }
     },
     "localname": "DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_DeferredShareUnitsOutstandingNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of outstanding deferred share units as of the reported date.",
        "label": "Deferred Share Units Outstanding Number (in shares)",
        "terseLabel": "Deferred Share Units Outstanding Number (in shares)"
       }
      }
     },
     "localname": "DeferredShareUnitsOutstandingNumber",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dsgx_DeferredShareUnitsRedeemedAndSettledInCash": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of deferred share units redeemed and settled in cash.",
        "label": "Deferred Share Units Redeemed and Settled in Cash (in shares)",
        "terseLabel": "Deferred Share Units Redeemed and Settled in Cash (in shares)"
       }
      }
     },
     "localname": "DeferredShareUnitsRedeemedAndSettledInCash",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dsgx_DeferredTaxCharges": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of deferred tax charges recorded during the period.",
        "label": "Deferred tax charge"
       }
      }
     },
     "localname": "DeferredTaxCharges",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_DerivativeGainOnDerivatives": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in the fair value of derivatives recognized in the income statement.",
        "label": "Derivative Gain On Derivatives",
        "negatedLabel": "Derivative, Gain on Derivatives"
       }
      }
     },
     "localname": "DerivativeGainOnDerivatives",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_DerivativeInstrumentCommonSharesHeldPerShare": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The per share amount of common shares held by certain derivative instruments entered into by the company.",
        "label": "Derivative Instrument, Common Shares Held, Per Share (in dollars per share)",
        "terseLabel": "Derivative Instrument, Common Shares Held, Per Share (in dollars per share)"
       }
      }
     },
     "localname": "DerivativeInstrumentCommonSharesHeldPerShare",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "dsgx_DerivativeInstrumentSharesOfCommonStockHeld": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares held by certain derivative instruments entered into by the company.",
        "label": "Derivative Instrument, Shares of Common Stock Held (in shares)",
        "terseLabel": "Derivative Instrument, Shares of Common Stock Held (in shares)"
       }
      }
     },
     "localname": "DerivativeInstrumentSharesOfCommonStockHeld",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dsgx_EquipmentInstalledWithCustomersMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents equipment installed with customers.",
        "label": "Equipment Installed With Customers"
       }
      }
     },
     "localname": "EquipmentInstalledWithCustomersMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_ExistingTechnologyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information about existing technology.",
        "label": "Existing Technology"
       }
      }
     },
     "localname": "ExistingTechnologyMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_ExpensesAndRecoveriesNet": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expenses (recovery) related to operating expenses in the operation statement.",
        "label": "Expenses and Recoveries, Net",
        "terseLabel": "Expense (recovery)"
       }
      }
     },
     "localname": "ExpensesAndRecoveriesNet",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of gain (loss) from effect of movements in foreign exchange from liability measured at fair value on recurring basis using unobservable input (level 3).",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) From Effect Of Movements In Foreign Exchange",
        "terseLabel": "Effect of movements in foreign exchange"
       }
      }
     },
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, after Year Four"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_Fiscal2023AcquisitionsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the member information pertaining to Fiscal 2023 Acquisitions.",
        "label": "Fiscal 2023 Acquisitions"
       }
      }
     },
     "localname": "Fiscal2023AcquisitionsMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_FoxtrotMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to Foxtrot.",
        "label": "Foxtrot"
       }
      }
     },
     "localname": "FoxtrotMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_GoodwillDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Goodwill Disclosure [Abstract]",
        "label": "Goodwill"
       }
      }
     },
     "localname": "GoodwillDisclosureAbstract",
     "nsuri": "http://www.descartes.com/20220731",
     "xbrltype": "stringItemType"
    },
    "dsgx_GreenmileMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to GreenMile.",
        "label": "GreenMile"
       }
      }
     },
     "localname": "GreenmileMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_IncomeTaxDisclosureLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "N/A",
        "label": "Income Tax Disclosure [Line Items]",
        "terseLabel": "Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxDisclosureLineItems",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "dsgx_IncomeTaxDisclosureTable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "N/A",
        "label": "Income Tax Disclosure [Table]"
       }
      }
     },
     "localname": "IncomeTaxDisclosureTable",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "dsgx_IncreaseDecreaseInOperatingLeaseLiabilities": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 8.0,
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of increase (decrease) in operating lease liabilities.",
        "label": "Increase (Decrease) in Operating Lease Liabilities",
        "verboseLabel": "Operating leases"
       }
      }
     },
     "localname": "IncreaseDecreaseInOperatingLeaseLiabilities",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date.",
        "label": "Lessee, Operating Lease, Liability, to be Paid, after Year Four",
        "terseLabel": "2028 and thereafter"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityToBePaidAfterYearFour",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to line of credit borrowings to support foreign exchange and interest rate hedging.",
        "label": "Line of Credit Borrowings to Support Foreign Exchange and Interest Rate Hedging [Member]"
       }
      }
     },
     "localname": "LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_MaximumPercentageOfSharesToBeRepurchased": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the maximum percentage of shares of the public float to be repurchased.",
        "label": "Maximum Percentage of Shares to be Repurchased",
        "terseLabel": "Maximum percentage of shares to be repurchased for cancellation"
       }
      }
     },
     "localname": "MaximumPercentageOfSharesToBeRepurchased",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "dsgx_NcibMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the intention of buying back the company's own outstanding shares from the markets.",
        "label": "NCIB"
       }
      }
     },
     "localname": "NcibMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_NetChbLlcMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to Net CHB, LLC,",
        "label": "Net CHB, LLC"
       }
      }
     },
     "localname": "NetChbLlcMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_OtherReceivablesNetCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Net working capital adjustments receivable from acquisitions.",
        "label": "Net working capital adjustments receivable from acquisitions",
        "terseLabel": "Net working capital adjustments receivable from acquisitions"
       }
      }
     },
     "localname": "NetWorkingCapitalAdjustmentsReceivableFromAcquisitions",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_NoteToFinancialStatementDetailsTextual": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note To Financial Statement Details Textual"
       }
      }
     },
     "localname": "NoteToFinancialStatementDetailsTextual",
     "nsuri": "http://www.descartes.com/20220731",
     "xbrltype": "stringItemType"
    },
    "dsgx_OtherReceivablesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Other Receivables Disclosure Abstract.",
        "label": "Other Receivables."
       }
      }
     },
     "localname": "OtherReceivablesDisclosureAbstract",
     "nsuri": "http://www.descartes.com/20220731",
     "xbrltype": "stringItemType"
    },
    "dsgx_OtherReceivablesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of other receivables.",
        "label": "Other Receivables [Table Text Block]",
        "terseLabel": "Schedule of other receivables"
       }
      }
     },
     "localname": "OtherReceivablesTableTextBlock",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherReceivablesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "dsgx_OtherReceivablesTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for other receivables.",
        "label": "Other Receivables [Text Block]",
        "terseLabel": "Other Receivables"
       }
      }
     },
     "localname": "OtherReceivablesTextBlock",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherReceivables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "dsgx_PSUsAndRSUsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to PSUs and RSUs.",
        "label": "PSUs and RSUs [Member]"
       }
      }
     },
     "localname": "PSUsAndRSUsMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_PercentageOfAccountReceivable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represent of percentage item",
        "label": "Percentage of account receivable",
        "terseLabel": "Percentage of account receivable"
       }
      }
     },
     "localname": "PercentageOfAccountReceivable",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "dsgx_PinPointMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to PinPoint GPS Solutions Inc.",
        "label": "PinPoint [Member]"
       }
      }
     },
     "localname": "PinPointMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_PortrixMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to Portrix.",
        "label": "Portrix"
       }
      }
     },
     "localname": "PortrixMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_ProfessionalServicesAndOtherMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to items categorized as Professional Services and Other.",
        "label": "Professional services and other"
       }
      }
     },
     "localname": "ProfessionalServicesAndOtherMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_QuestawebMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to QuestaWeb.",
        "label": "QuestaWeb"
       }
      }
     },
     "localname": "QuestawebMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_RevolvingOperatingCreditFacilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to a revolving operating credit facility for general corporate purposes including the financing of ongoing working capital needs and acquisitions.",
        "label": "Revolving Operating Credit Facility [Member]"
       }
      }
     },
     "localname": "RevolvingOperatingCreditFacilityMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_RightsToPurchaseCommonSharesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the member pertaining to rights to purchase common shares.",
        "label": "Rights to purchase Common Shares [Member]"
       }
      }
     },
     "localname": "RightsToPurchaseCommonSharesMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of cash settled under restricted share units.",
        "label": "Schedule Of Cash Settled Restricted Share Unit Plan Activity [Table Text Block]",
        "terseLabel": "Summary cash settled restricted share unit plan activity"
       }
      }
     },
     "localname": "ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "dsgx_SeniorSecuredCreditFacilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the senior secured credit facility.",
        "label": "Senior Secured Credit Facility [Member]"
       }
      }
     },
     "localname": "SeniorSecuredCreditFacilityMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Intrinsic value of equity-based compensation awards exercisable. Excludes stock and unit options.",
        "label": "Exercisable, Aggregate Intrinsic Value, PSU"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of units exercisable other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "Exercisable, number of units (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value of exercisable awards on equity-based plans excluding option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, revenue or profit achievement stock award plan) for which the employer is contingently obligated to issue equity instruments or transfer assets to an employee who has not yet satisfied service or performance criteria necessary to gain title to proceeds from the sale of the award or underlying shares or units.",
        "label": "Exercisable, PSU weighted-average granted date fair value (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for vested portions of equity instruments other than options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Exercisable, Weighted-Average Remaining Contractual, PSU (Year)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the weighted average grant date fair value of units issued during the period.",
        "label": "Performance units issued, weighted-average granted date fair value (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "dsgx_ShareholderApprovedStockOptionsPlanMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents Company's shareholder approved stock option plan.",
        "label": "Shareholder-Approved Stock Options Plan [Member]"
       }
      }
     },
     "localname": "ShareholderApprovedStockOptionsPlanMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_ShelfProspectusMaximumAmount": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maximum amount related to the shelf prospectus.",
        "label": "Shelf Prospectus, Maximum Amount",
        "terseLabel": "Shelf Prospectus, Maximum Amount"
       }
      }
     },
     "localname": "ShelfProspectusMaximumAmount",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dsgx_ShelfProspectusMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the short-form base shelf prospectus entered into by the company.",
        "label": "The 2022 Base Shelf Prospectus"
       }
      }
     },
     "localname": "ShelfProspectusMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_ShelfProspectusPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The duration of the shelf prospectus.",
        "label": "Shelf Prospectus Period (Month)",
        "terseLabel": "Shelf Prospectus Period (Month)"
       }
      }
     },
     "localname": "ShelfProspectusPeriod",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "dsgx_StockOptionsTreasuryStockMethodMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the treasury stock.",
        "label": "Stock Options, Treasury Stock Method [Member]"
       }
      }
     },
     "localname": "StockOptionsTreasuryStockMethodMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_The2019AcquisitionsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the 2019 acquisitions (Aljex, Velocity Mail, and PinPoint).",
        "label": "The 2019 Acquisitions [Member]"
       }
      }
     },
     "localname": "The2019AcquisitionsMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_The2020AcquisitionsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the 2020 acquisitions (Visual Compliance, CORE, STEPcom, and BestTransport).",
        "label": "The 2020 Acquisitions [Member]"
       }
      }
     },
     "localname": "The2020AcquisitionsMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_The2020BaseShelfProspectusMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the 2020 Base Shelf Prospectus.",
        "label": "The 2020 Base Shelf Prospectus"
       }
      }
     },
     "localname": "The2020BaseShelfProspectusMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_The2021AcquisitionsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the 2021 acquisitions.",
        "label": "The 2021 Acquisitions [Member]"
       }
      }
     },
     "localname": "The2021AcquisitionsMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_The2022AcquisitionsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the 2022 acquisitions.",
        "label": "The 2022 Acquisitions [Member]"
       }
      }
     },
     "localname": "The2022AcquisitionsMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_VelocityMailMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to Velocity Mail, LLC.",
        "label": "Velocity Mail [Member]"
       }
      }
     },
     "localname": "VelocityMailMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_VisualComplianceMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the acquisition of substantially all of the assets of the businesses run by the Management Systems Resources Inc. group of companies (collectively, \"Visual Compliance\"), a provider of software solutions and services to automate customs, trade and fiscal compliance processes including denied and restricted party screening processes and export licensing.",
        "label": "Visual Compliance [Member]"
       }
      }
     },
     "localname": "VisualComplianceMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to accounting changes.",
        "label": "Voluntary Change Elected to Adopt in Accounting for Deferred Revenue for Income Tax Purposes in the United States [Member]"
       }
      }
     },
     "localname": "VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_XpsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to XPS.",
        "label": "XPS"
       }
      }
     },
     "localname": "XpsMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_XpsTechnologyLlcMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the member information pertaining to XPS Technology LLC.",
        "label": "XPS Technology LLC"
       }
      }
     },
     "localname": "XpsTechnologyLlcMember",
     "nsuri": "http://www.descartes.com/20220731",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dsgx_statement-statement-note-6-other-receivables-other-receivables-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Receivables"
       }
      }
     },
     "localname": "statement-statement-note-6-other-receivables-other-receivables-details",
     "nsuri": "http://www.descartes.com/20220731",
     "xbrltype": "stringItemType"
    },
    "srt_AsiaPacificMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Asia Pacific"
       }
      }
     },
     "localname": "AsiaPacificMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MaximumMember": {
     "auth_ref": [
      "r256",
      "r291",
      "r348",
      "r350",
      "r512",
      "r513",
      "r514",
      "r515",
      "r516",
      "r517",
      "r518",
      "r556",
      "r559",
      "r581",
      "r582"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum"
       }
      }
     },
     "localname": "MaximumMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureLeasesDetails",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MinimumMember": {
     "auth_ref": [
      "r256",
      "r291",
      "r348",
      "r350",
      "r512",
      "r513",
      "r514",
      "r515",
      "r516",
      "r517",
      "r518",
      "r556",
      "r559",
      "r581",
      "r582"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Minimum"
       }
      }
     },
     "localname": "MinimumMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ProductOrServiceAxis": {
     "auth_ref": [
      "r177",
      "r330",
      "r334",
      "r520",
      "r555",
      "r557"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Axis]"
       }
      }
     },
     "localname": "ProductOrServiceAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ProductsAndServicesDomain": {
     "auth_ref": [
      "r177",
      "r330",
      "r334",
      "r520",
      "r555",
      "r557"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Domain]"
       }
      }
     },
     "localname": "ProductsAndServicesDomain",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RangeAxis": {
     "auth_ref": [
      "r256",
      "r291",
      "r338",
      "r348",
      "r350",
      "r512",
      "r513",
      "r514",
      "r515",
      "r516",
      "r517",
      "r518",
      "r556",
      "r559",
      "r581",
      "r582"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Axis]"
       }
      }
     },
     "localname": "RangeAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureLeasesDetails",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_RangeMember": {
     "auth_ref": [
      "r256",
      "r291",
      "r338",
      "r348",
      "r350",
      "r512",
      "r513",
      "r514",
      "r515",
      "r516",
      "r517",
      "r518",
      "r556",
      "r559",
      "r581",
      "r582"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Domain]"
       }
      }
     },
     "localname": "RangeMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureLeasesDetails",
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_SegmentGeographicalDomain": {
     "auth_ref": [
      "r178",
      "r179",
      "r330",
      "r335",
      "r558",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical [Domain]"
       }
      }
     },
     "localname": "SegmentGeographicalDomain",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_StatementGeographicalAxis": {
     "auth_ref": [
      "r178",
      "r179",
      "r330",
      "r335",
      "r558",
      "r567",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical [Axis]"
       }
      }
     },
     "localname": "StatementGeographicalAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basis of Presentation"
       }
      }
     },
     "localname": "AccountingPoliciesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": {
     "auth_ref": [
      "r36"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period.",
        "label": "Accounts Payable and Accrued Liabilities Disclosure [Text Block]",
        "terseLabel": "Accrued Liabilities"
       }
      }
     },
     "localname": "AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilities"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AccountsPayableCurrent": {
     "auth_ref": [
      "r35",
      "r508"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Accounts payable"
       }
      }
     },
     "localname": "AccountsPayableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock": {
     "auth_ref": [
      "r193"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of allowance for credit loss on accounts receivable.",
        "label": "Accounts Receivable, Allowance for Credit Loss [Table Text Block]",
        "terseLabel": "Schedule of changes in provision for credit losses"
       }
      }
     },
     "localname": "AccountsReceivableAllowanceForCreditLossTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AccountsReceivableGrossCurrent": {
     "auth_ref": [
      "r183",
      "r184"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_AccountsReceivableNetCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Trade accounts receivable"
       }
      }
     },
     "localname": "AccountsReceivableGrossCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableNetAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts receivable (net)",
        "terseLabel": "Accounts receivable (net)"
       }
      }
     },
     "localname": "AccountsReceivableNetAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "auth_ref": [
      "r5",
      "r20",
      "r183",
      "r184"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.",
        "label": "Trade (Note 5)",
        "totalLabel": "Accounts Receivable, after Allowance for Credit Loss, Current, Total"
       }
      }
     },
     "localname": "AccountsReceivableNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedIncomeTaxesCurrent": {
     "auth_ref": [
      "r14",
      "r527",
      "r543"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations.",
        "label": "Income taxes payable"
       }
      }
     },
     "localname": "AccruedIncomeTaxesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedIncomeTaxesNoncurrent": {
     "auth_ref": [
      "r16",
      "r527",
      "r543"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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 beyond one year or the operating cycle, whichever is longer. Alternate captions include income taxes payable, noncurrent.",
        "label": "Accrued Income Taxes, Noncurrent",
        "terseLabel": "INCOME TAXES PAYABLE"
       }
      }
     },
     "localname": "AccruedIncomeTaxesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r39"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Accrued liabilities (Note 11)",
        "totalLabel": "Accrued Liabilities, Current, Total"
       }
      }
     },
     "localname": "AccruedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Liabilities"
       }
      }
     },
     "localname": "AccruedLiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccruedProfessionalFeesCurrent": {
     "auth_ref": [
      "r8",
      "r9",
      "r39"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Accrued Professional Fees, Current",
        "terseLabel": "Accrued professional fees"
       }
      }
     },
     "localname": "AccruedProfessionalFeesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "auth_ref": [
      "r33",
      "r218"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.",
        "label": "Accumulated amortization",
        "terseLabel": "Accumulated depreciation"
       }
      }
     },
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "auth_ref": [
      "r23",
      "r56",
      "r58",
      "r59",
      "r544",
      "r564",
      "r565"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.",
        "label": "Accumulated other comprehensive income (loss)"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "auth_ref": [
      "r55",
      "r59",
      "r66",
      "r67",
      "r68",
      "r115",
      "r116",
      "r117",
      "r456",
      "r560",
      "r561",
      "r594"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners.",
        "label": "Accumulated other comprehensive income (loss)."
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "auth_ref": [
      "r21"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.",
        "label": "Additional paid-in capital"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "auth_ref": [
      "r115",
      "r116",
      "r117",
      "r385",
      "r386",
      "r387",
      "r461"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Additional paid-in capital."
       }
      }
     },
     "localname": "AdditionalPaidInCapitalMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis": {
     "auth_ref": [
      "r118",
      "r119",
      "r120",
      "r121"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of change in accounting principle. Excludes change from amendment to accounting standards.",
        "label": "Change in Accounting Principle, Type [Axis]"
       }
      }
     },
     "localname": "AdjustmentsForChangeInAccountingPrincipleAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "auth_ref": [
      "r351",
      "r353",
      "r391",
      "r392"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.",
        "label": "Stock-based compensation expense (Note 17)"
       }
      }
     },
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to reconcile net income to cash provided by operating activities:"
       }
      }
     },
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "auth_ref": [
      "r353",
      "r381",
      "r390"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.",
        "label": "Stock-based compensation expense",
        "terseLabel": "Effect on net income"
       }
      }
     },
     "localname": "AllocatedShareBasedCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "auth_ref": [
      "r27",
      "r185",
      "r190"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_AccountsReceivableNetCurrent",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.",
        "label": "Accounts Receivable, Allowance for Credit Loss, Current",
        "negatedLabel": "Less: Provision for credit losses",
        "periodEndLabel": "Balance",
        "periodStartLabel": "Balance"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails",
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": {
     "auth_ref": [
      "r192"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance.",
        "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff",
        "negatedLabel": "Write-offs charged against the provision"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "auth_ref": [
      "r98",
      "r206",
      "r212"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 4.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.",
        "label": "Amortization of intangible assets"
       }
      }
     },
     "localname": "AmortizationOfIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "auth_ref": [
      "r142"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.",
        "label": "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
        "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "auth_ref": [
      "r142"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of antidilutive security.",
        "label": "Antidilutive Securities [Axis]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "auth_ref": [
      "r142"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented.",
        "label": "Antidilutive Securities, Name [Domain]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AssetUnderConstructionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Asset in process of being built.",
        "label": "Asset under Construction"
       }
      }
     },
     "localname": "AssetUnderConstructionMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_Assets": {
     "auth_ref": [
      "r109",
      "r161",
      "r166",
      "r173",
      "r188",
      "r242",
      "r243",
      "r244",
      "r245",
      "r246",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r453",
      "r457",
      "r473",
      "r506",
      "r508",
      "r525",
      "r542"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "Assets",
        "totalLabel": "ASSETS, TOTAL"
       }
      }
     },
     "localname": "Assets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets [Abstract]",
        "terseLabel": "ASSETS"
       }
      }
     },
     "localname": "AssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsCurrent": {
     "auth_ref": [
      "r6",
      "r7",
      "r50",
      "r109",
      "r188",
      "r242",
      "r243",
      "r244",
      "r245",
      "r246",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r453",
      "r457",
      "r473",
      "r506",
      "r508"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 7.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "Assets, Current",
        "totalLabel": "ASSETS, CURRENT, TOTAL"
       }
      }
     },
     "localname": "AssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CURRENT ASSETS",
        "terseLabel": "CURRENT ASSETS"
       }
      }
     },
     "localname": "AssetsCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AwardTypeAxis": {
     "auth_ref": [
      "r354",
      "r383"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of award under share-based payment arrangement.",
        "label": "Award Type [Axis]"
       }
      }
     },
     "localname": "AwardTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).",
        "label": "Basis of Accounting, Policy [Policy Text Block]",
        "terseLabel": "Basis of Presentation"
       }
      }
     },
     "localname": "BasisOfAccountingPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "auth_ref": [
      "r347",
      "r349"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree.",
        "label": "Business Acquisition, Acquiree [Domain]"
       }
      }
     },
     "localname": "BusinessAcquisitionAcquireeDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "auth_ref": [
      "r347",
      "r349",
      "r428",
      "r429"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by business combination or series of individually immaterial business combinations.",
        "label": "Business Acquisition [Axis]"
       }
      }
     },
     "localname": "BusinessAcquisitionAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued": {
     "auth_ref": [
      "r446"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares of equity interests issued or issuable to acquire entity.",
        "label": "Acquisitions (Note 3) (in shares)",
        "terseLabel": "Business Acquisition, Equity Interest Issued or Issuable, Number of Shares (in shares)"
       }
      }
     },
     "localname": "BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_BusinessAcquisitionLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Business Acquisition [Line Items]"
       }
      }
     },
     "localname": "BusinessAcquisitionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic": {
     "auth_ref": [
      "r426",
      "r427"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The pro forma basic net income per share for a period as if the business combination or combinations had been completed at the beginning of a period.",
        "label": "Business Acquisition, Pro Forma Earnings Per Share, Basic",
        "verboseLabel": "Basic (in dollars per share)"
       }
      }
     },
     "localname": "BusinessAcquisitionProFormaEarningsPerShareBasic",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted": {
     "auth_ref": [
      "r426",
      "r427"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The pro forma diluted net income per share for a period as if the business combination or combinations had been completed at the beginning of a period.",
        "label": "Business Acquisition, Pro Forma Earnings Per Share, Diluted",
        "verboseLabel": "Diluted (in dollars per share)"
       }
      }
     },
     "localname": "BusinessAcquisitionProFormaEarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_BusinessAcquisitionProFormaInformationTextBlock": {
     "auth_ref": [
      "r426",
      "r427"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate.",
        "label": "Business Acquisition, Pro Forma Information [Table Text Block]",
        "terseLabel": "Business acquisition on pro forma information"
       }
      }
     },
     "localname": "BusinessAcquisitionProFormaInformationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss": {
     "auth_ref": [
      "r426",
      "r427"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a period.",
        "label": "Business Acquisition, Pro Forma Net Income (Loss)",
        "verboseLabel": "Net income"
       }
      }
     },
     "localname": "BusinessAcquisitionsProFormaNetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessAcquisitionsProFormaRevenue": {
     "auth_ref": [
      "r426",
      "r427"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period.",
        "label": "Business Acquisition, Pro Forma Revenue",
        "verboseLabel": "Revenues"
       }
      }
     },
     "localname": "BusinessAcquisitionsProFormaRevenue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible": {
     "auth_ref": [
      "r433"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For receivables acquired in a business combination, excluding certain loans and debt securities acquired in a transfer (as defined), this element represents the best estimate at the acquisition date of the contractual cash flows not expected to be collected, by major class of receivable, such as loans, direct finance leases (as defined), and any other class of receivables.",
        "label": "us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible",
        "terseLabel": "Estimate of contractual cash flows not expected to be collected"
       }
      }
     },
     "localname": "BusinessCombinationAcquiredReceivablesEstimatedUncollectible",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationAcquiredReceivablesFairValue": {
     "auth_ref": [
      "r431"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of acquired receivable from business combination, excluding certain loans and debt securities acquired in transfer.",
        "label": "Business Combination, Acquired Receivable, Fair Value",
        "verboseLabel": "Fair value of acquired trade receivables"
       }
      }
     },
     "localname": "BusinessCombinationAcquiredReceivablesFairValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount": {
     "auth_ref": [
      "r432"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For receivables acquired in a business combination, excluding certain loans and debt securities acquired in a transfer (as defined), this element represents the gross contractual amounts receivable, by major class of receivable, such as loans, direct finance leases (as defined), and any other class of receivables.",
        "label": "us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount",
        "verboseLabel": "Gross contractual amount of trade receivables acquired"
       }
      }
     },
     "localname": "BusinessCombinationAcquiredReceivablesGrossContractualAmount",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationAcquisitionRelatedCosts": {
     "auth_ref": [
      "r424"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_OtherCostAndExpenseOperating",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.",
        "label": "Business Combination, Acquisition Related Costs",
        "verboseLabel": "Acquisition-related costs"
       }
      }
     },
     "localname": "BusinessCombinationAcquisitionRelatedCosts",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationAndAssetAcquisitionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Acquisitions"
       }
      }
     },
     "localname": "BusinessCombinationAndAssetAcquisitionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferred1": {
     "auth_ref": [
      "r441",
      "r442",
      "r444"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.",
        "label": "Business Combination, Consideration Transferred",
        "netLabel": "Purchase price consideration"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferred1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable": {
     "auth_ref": [
      "r441",
      "r442"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of equity interests of the acquirer, including instruments or interests issued or issuable in consideration for the business combination.",
        "label": "Common shares issued"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred": {
     "auth_ref": [
      "r439",
      "r441",
      "r442",
      "r445"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities incurred by the acquirer as part of consideration transferred in a business combination.",
        "label": "Contingent consideration",
        "terseLabel": "Contingent consideration"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferredLiabilitiesIncurred",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": {
     "auth_ref": [
      "r97",
      "r449"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_OtherCostAndExpenseOperating",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.",
        "label": "Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability",
        "terseLabel": "Contingent consideration adjustments"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh": {
     "auth_ref": [
      "r448"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For contingent consideration arrangements recognized in connection with a business combination, this element represents an estimate of the high-end of the potential range (undiscounted) of the consideration which may be paid.",
        "label": "us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh",
        "terseLabel": "Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High",
        "verboseLabel": "Maximum potential performance-based contingent consideration"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiability": {
     "auth_ref": [
      "r440",
      "r443",
      "r447"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination.",
        "label": "Business Combination, Contingent Consideration, Liability",
        "terseLabel": "Fair value of the contingent considerations",
        "verboseLabel": "Contingent consideration"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationLiability",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput": {
     "auth_ref": [
      "r466"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of input used to measure contingent consideration liability from business combination.",
        "label": "Business Combination, Contingent Consideration, Liability, Measurement Input",
        "terseLabel": "Estimated fair value consideration percentage"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationLiabilityMeasurementInput",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "decimalItemType"
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "auth_ref": [
      "r450"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).",
        "label": "Business Combination Disclosure [Text Block]",
        "terseLabel": "Acquisitions"
       }
      }
     },
     "localname": "BusinessCombinationDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitions"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual": {
     "auth_ref": [
      "r425"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This element represents the amount of earnings or loss of the acquiree since the acquisition date included in the consolidated income statement for the reporting period.",
        "label": "Business Combination, Pro Forma Information, Earnings or Loss of Acquiree since Acquisition Date, Actual",
        "verboseLabel": "Amount of net income recognized"
       }
      }
     },
     "localname": "BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual": {
     "auth_ref": [
      "r425"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This element represents the amount of revenue of the acquiree since the acquisition date included in the consolidated income statement for the reporting period.",
        "label": "us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual",
        "verboseLabel": "Amount of revenue recognized"
       }
      }
     },
     "localname": "BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets": {
     "auth_ref": [
      "r434"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer, acquired at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets",
        "terseLabel": "Current assets, excluding cash acquired"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities": {
     "auth_ref": [
      "r434"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities",
        "negatedLabel": "Current liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue": {
     "auth_ref": [
      "r434"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred revenue expected to be recognized as such within one year or the normal operating cycle, if longer, assumed at the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue",
        "negatedLabel": "Deferred revenue"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets": {
     "auth_ref": [
      "r434"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax asset attributable to deductible temporary differences and carryforwards acquired at the acquisition date.",
        "label": "Deferred income tax asset"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": {
     "auth_ref": [
      "r434"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities",
        "negatedLabel": "Deferred income tax liability"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities": {
     "auth_ref": [
      "r430",
      "r434"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of financial liabilities assumed (as defined) which have been recognized as of the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities",
        "negatedLabel": "Debt"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": {
     "auth_ref": [
      "r430",
      "r434"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date.",
        "label": "Finite-lived intangible assets acquired",
        "terseLabel": "Finite-lived intangible assets acquired"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets": {
     "auth_ref": [
      "r434"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of other assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date.",
        "label": "Other long-term assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": {
     "auth_ref": [
      "r430",
      "r434"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date.",
        "label": "Property and equipment"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": {
     "auth_ref": [
      "r434"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net",
        "terseLabel": "Goodwill"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock": {
     "auth_ref": [
      "r2",
      "r114",
      "r152"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for the business description and basis of presentation concepts.  Business description describes the nature and type of organization including but not limited to organizational structure as may be applicable to holding companies, parent and subsidiary relationships, business divisions, business units, business segments, affiliates and information about significant ownership of the reporting entity.  Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).",
        "label": "Business Description and Basis of Presentation [Text Block]",
        "terseLabel": "Description of the Business"
       }
      }
     },
     "localname": "BusinessDescriptionAndBasisOfPresentationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureDescriptionOfBusiness"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CapitalizedContractCostAmortization": {
     "auth_ref": [
      "r196"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization expense for asset recognized from cost incurred to obtain or fulfill contract with customer.",
        "label": "Capitalized Contract Cost, Amortization",
        "terseLabel": "Capitalized contract cost, amortization"
       }
      }
     },
     "localname": "CapitalizedContractCostAmortization",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedContractCostNet": {
     "auth_ref": [
      "r195"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer.",
        "label": "Capitalized Contract Cost, Net",
        "terseLabel": "Capitalized contract cost, net, Total"
       }
      }
     },
     "localname": "CapitalizedContractCostNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAcquiredFromAcquisition": {
     "auth_ref": [
      "r85"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow associated with the acquisition of business during the period (for example, cash that was held by the acquired business).",
        "label": "Cash Acquired from Acquisition",
        "terseLabel": "Cash acquired"
       }
      }
     },
     "localname": "CashAcquiredFromAcquisition",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r3",
      "r31",
      "r100"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.",
        "label": "Cash"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": {
     "auth_ref": [
      "r94",
      "r100",
      "r102"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
        "periodEndLabel": "Cash, end of period",
        "periodStartLabel": "Cash, beginning of period"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "auth_ref": [
      "r94",
      "r475"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
        "totalLabel": "Decrease in cash"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashFlowSupplementalDisclosuresTextBlock": {
     "auth_ref": [
      "r103"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Cash Flow, Supplemental Disclosures [Text Block]",
        "terseLabel": "Supplemental Cash Flow Information"
       }
      }
     },
     "localname": "CashFlowSupplementalDisclosuresTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ChangeInAccountingPrincipleMember": {
     "auth_ref": [
      "r118",
      "r119",
      "r120",
      "r121"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Change in accounting principle. Excludes change from amendment to accounting standards.",
        "label": "Change in Accounting Principle, Type [Domain]"
       }
      }
     },
     "localname": "ChangeInAccountingPrincipleMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ClassOfStockDomain": {
     "auth_ref": [
      "r106",
      "r109",
      "r132",
      "r136",
      "r137",
      "r139",
      "r141",
      "r149",
      "r150",
      "r151",
      "r188",
      "r242",
      "r246",
      "r247",
      "r248",
      "r251",
      "r252",
      "r289",
      "r290",
      "r294",
      "r298",
      "r473",
      "r591"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Class of Stock [Domain]"
       }
      }
     },
     "localname": "ClassOfStockDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ClassOfStockLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Class of Stock [Line Items]"
       }
      }
     },
     "localname": "ClassOfStockLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingencies": {
     "auth_ref": [
      "r43",
      "r231",
      "r530",
      "r548"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.",
        "label": "COMMITMENTS, CONTINGENCIES AND GUARANTEES (Note 14)"
       }
      }
     },
     "localname": "CommitmentsAndContingencies",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "auth_ref": [
      "r228",
      "r229",
      "r230",
      "r238",
      "r568"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for commitments and contingencies.",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "terseLabel": "Commitments, Contingencies and Guarantees"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock": {
     "auth_ref": [
      "r230",
      "r238",
      "r241"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for commitments, contingencies, and guarantees.",
        "label": "Commitments Contingencies and Guarantees [Text Block]",
        "terseLabel": "Commitments, Contingencies and Guarantees"
       }
      }
     },
     "localname": "CommitmentsContingenciesAndGuaranteesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CommonStockMember": {
     "auth_ref": [
      "r115",
      "r116",
      "r461"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock that is subordinate to all other stock of the issuer.",
        "label": "Common shares"
       }
      }
     },
     "localname": "CommonStockMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommonStockSharesAuthorizedUnlimited": {
     "auth_ref": [
      "r45"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates that the number of common shares permitted to be issued by an entity's charter and bylaws is unlimited. The acceptable value is \"Unlimited\".",
        "label": "Common Stock, Shares Authorized, Unlimited"
       }
      }
     },
     "localname": "CommonStockSharesAuthorizedUnlimited",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals"
     ],
     "xbrltype": "authorizedUnlimitedItemType"
    },
    "us-gaap_CommonStockSharesIssued": {
     "auth_ref": [
      "r19"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Common shares, shares issued (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "auth_ref": [
      "r19",
      "r305"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.",
        "label": "Common shares, shares outstanding (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockValue": {
     "auth_ref": [
      "r19",
      "r508"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Common shares - unlimited shares authorized; Shares issued and outstanding totaled 84,756,210 at January 31, 2022 (January 31, 2021 - 84,494,658)",
        "terseLabel": "Common shares - unlimited shares authorized; Shares issued and outstanding totaled 84,788,547 at July 31, 2022 (January 31, 2022 - 84,756,210)"
       }
      }
     },
     "localname": "CommonStockValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "auth_ref": [
      "r62",
      "r64",
      "r65",
      "r74",
      "r534",
      "r551"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.",
        "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent",
        "totalLabel": "COMPREHENSIVE INCOME"
       }
      }
     },
     "localname": "ComprehensiveIncomeNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ComputerEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems.",
        "label": "Computer Equipment"
       }
      }
     },
     "localname": "ComputerEquipmentMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "auth_ref": [
      "r319"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.",
        "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable",
        "terseLabel": "Schedule of the changes in the contract assets balance"
       }
      }
     },
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ContractWithCustomerAssetNet": {
     "auth_ref": [
      "r314",
      "r316",
      "r331"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.",
        "label": "Contract with Customer, Asset, after Allowance for Credit Loss",
        "periodEndLabel": "Balance at July 31, 2022",
        "periodStartLabel": "Balance at January 31, 2022"
       }
      }
     },
     "localname": "ContractWithCustomerAssetNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerAssetReclassifiedToReceivable": {
     "auth_ref": [
      "r318"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time from transfer to receivable due to right to consideration becoming unconditional.",
        "label": "Contract with Customer, Asset, Reclassified to Receivable",
        "negatedLabel": "Transfers to trade receivables from contract assets"
       }
      }
     },
     "localname": "ContractWithCustomerAssetReclassifiedToReceivable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiability": {
     "auth_ref": [
      "r314",
      "r315",
      "r331"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.",
        "label": "Contract with Customer, Liability",
        "periodEndLabel": "Ending balance",
        "periodStartLabel": "Beginning balance"
       }
      }
     },
     "localname": "ContractWithCustomerLiability",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination": {
     "auth_ref": [
      "r317"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from business combination.",
        "label": "Increases from business combinations, net",
        "terseLabel": "Increases from business combinations, net"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityNoncurrent": {
     "auth_ref": [
      "r314",
      "r315",
      "r331"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent.",
        "label": "Long-term",
        "terseLabel": "Long-term"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "auth_ref": [
      "r332"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.",
        "label": "Recognition of previously deferred revenue",
        "terseLabel": "Recognition of previously deferred revenue"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "auth_ref": [
      "r80",
      "r520"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "COST OF REVENUES"
       }
      }
     },
     "localname": "CostOfGoodsAndServicesSold",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostOfSalesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption encompassing cost of sales.",
        "label": "Cost of Sales [Member]"
       }
      }
     },
     "localname": "CostOfSalesMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CostsAndExpensesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "EXPENSES"
       }
      }
     },
     "localname": "CostsAndExpensesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CreditFacilityAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.",
        "label": "Credit Facility [Axis]"
       }
      }
     },
     "localname": "CreditFacilityAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CreditFacilityDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.",
        "label": "Credit Facility [Domain]"
       }
      }
     },
     "localname": "CreditFacilityDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "auth_ref": [
      "r110",
      "r408",
      "r414"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Current Federal Tax Expense (Benefit)",
        "terseLabel": "Current Federal Tax Expense (Benefit)"
       }
      }
     },
     "localname": "CurrentFederalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r110",
      "r408",
      "r414",
      "r416"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.",
        "label": "Current income tax expense",
        "verboseLabel": "Current"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CustomerRelationshipsMember": {
     "auth_ref": [
      "r437"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships.",
        "label": "Customer agreements and relationships"
       }
      }
     },
     "localname": "CustomerRelationshipsMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt"
       }
      }
     },
     "localname": "DebtDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "auth_ref": [
      "r105",
      "r259",
      "r260",
      "r261",
      "r262",
      "r263",
      "r264",
      "r265",
      "r270",
      "r277",
      "r278",
      "r280",
      "r285"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.",
        "label": "Debt Disclosure [Text Block]",
        "terseLabel": "Long-Term Debt"
       }
      }
     },
     "localname": "DebtDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebt"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DebtInstrumentAxis": {
     "auth_ref": [
      "r13",
      "r14",
      "r15",
      "r108",
      "r113",
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r260",
      "r266",
      "r267",
      "r268",
      "r269",
      "r271",
      "r272",
      "r273",
      "r274",
      "r275",
      "r276",
      "r281",
      "r282",
      "r283",
      "r284",
      "r488",
      "r526",
      "r528",
      "r541"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities.",
        "label": "Debt Instrument [Axis]"
       }
      }
     },
     "localname": "DebtInstrumentAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument.",
        "label": "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1",
        "terseLabel": "Debt Instrument, Basis Spread on Variable Rate"
       }
      }
     },
     "localname": "DebtInstrumentBasisSpreadOnVariableRate1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DebtInstrumentLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Debt Instrument [Line Items]"
       }
      }
     },
     "localname": "DebtInstrumentLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "auth_ref": [
      "r41",
      "r108",
      "r113",
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r260",
      "r266",
      "r267",
      "r268",
      "r269",
      "r271",
      "r272",
      "r273",
      "r274",
      "r275",
      "r276",
      "r281",
      "r282",
      "r283",
      "r284",
      "r488"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities.",
        "label": "Debt Instrument, Name [Domain]"
       }
      }
     },
     "localname": "DebtInstrumentNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtInstrumentTable": {
     "auth_ref": [
      "r41",
      "r108",
      "r113",
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r260",
      "r266",
      "r267",
      "r268",
      "r269",
      "r271",
      "r272",
      "r273",
      "r274",
      "r275",
      "r276",
      "r279",
      "r281",
      "r282",
      "r283",
      "r284",
      "r306",
      "r309",
      "r310",
      "r311",
      "r485",
      "r486",
      "r488",
      "r489",
      "r539"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A table or schedule providing information pertaining to long-term debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer.",
        "label": "Schedule of Long-term Debt Instruments [Table]"
       }
      }
     },
     "localname": "DebtInstrumentTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentTerm": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period of time between issuance and maturity of debt instrument, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Debt Instrument, Term",
        "terseLabel": "Debt Instrument, Term (Year)"
       }
      }
     },
     "localname": "DebtInstrumentTerm",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate carrying value as of the balance sheet date of the liabilities for stock option plans and other equity-based compensation arrangements.",
        "label": "us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent",
        "terseLabel": "Deferred Compensation Share-based Arrangements, Liability, Current and Noncurrent"
       }
      }
     },
     "localname": "DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r110",
      "r409",
      "r414"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred Federal Income Tax Expense (Benefit)",
        "terseLabel": "Deferred Federal Income Tax Expense (Benefit)"
       }
      }
     },
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "auth_ref": [
      "r397",
      "r398"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.",
        "label": "Deferred Income Tax Assets, Net",
        "verboseLabel": "DEFERRED INCOME TAXES"
       }
      }
     },
     "localname": "DeferredIncomeTaxAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r98",
      "r110",
      "r409",
      "r414",
      "r415",
      "r416"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred",
        "terseLabel": "Deferred tax (recovery) expense"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "auth_ref": [
      "r397",
      "r398"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 6.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.",
        "label": "DEFERRED INCOME TAXES"
       }
      }
     },
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredRevenueCurrent": {
     "auth_ref": [
      "r28"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current.",
        "label": "Deferred Revenue, Current",
        "terseLabel": "Deferred revenue (Note 19)",
        "verboseLabel": "Current"
       }
      }
     },
     "localname": "DeferredRevenueCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredRevenueNoncurrent": {
     "auth_ref": [
      "r28"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as noncurrent.",
        "label": "Deferred Revenue, Noncurrent",
        "terseLabel": "DEFERRED REVENUE (Note 19)"
       }
      }
     },
     "localname": "DeferredRevenueNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": {
     "auth_ref": [
      "r406",
      "r407"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.",
        "label": "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
        "terseLabel": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Depreciation": {
     "auth_ref": [
      "r98",
      "r216"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Depreciation"
       }
      }
     },
     "localname": "Depreciation",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeAssets": {
     "auth_ref": [
      "r51",
      "r52",
      "r53",
      "r472"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset.",
        "label": "Equity derivative contracts",
        "terseLabel": "Equity derivative contracts"
       }
      }
     },
     "localname": "DerivativeAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Derivative Instruments and Hedging Activities Disclosures [Line Items]"
       }
      }
     },
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about derivatives and hedging activities.",
        "label": "Derivative Instruments and Hedging Activities Disclosures [Table]"
       }
      }
     },
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DesignatedAsHedgingInstrumentMember": {
     "auth_ref": [
      "r459"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Derivative instrument designated as hedging instrument under Generally Accepted Accounting Principles (GAAP).",
        "label": "Designated as Hedging Instrument [Member]"
       }
      }
     },
     "localname": "DesignatedAsHedgingInstrumentMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DevelopedTechnologyRightsMember": {
     "auth_ref": [
      "r438"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property.",
        "label": "Existing technology"
       }
      }
     },
     "localname": "DevelopedTechnologyRightsMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "auth_ref": [
      "r393"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for share-based payment arrangement.",
        "label": "Share-based Payment Arrangement [Text Block]",
        "terseLabel": "Stock-Based Compensation Plans"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlans"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock-Based Compensation Plans"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EMEAMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Regions of Europe, Middle East and Africa.",
        "label": "Europe, Middle-East and Africa"
       }
      }
     },
     "localname": "EMEAMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EarningsPerShareAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share"
       }
      }
     },
     "localname": "EarningsPerShareAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasic": {
     "auth_ref": [
      "r75",
      "r122",
      "r123",
      "r124",
      "r125",
      "r126",
      "r130",
      "r132",
      "r139",
      "r140",
      "r141",
      "r145",
      "r146",
      "r462",
      "r463",
      "r535",
      "r552"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.",
        "label": "Earning Per Share (Basic)"
       }
      }
     },
     "localname": "EarningsPerShareBasic",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareBasicLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]"
       }
      }
     },
     "localname": "EarningsPerShareBasicLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareDiluted": {
     "auth_ref": [
      "r75",
      "r122",
      "r123",
      "r124",
      "r125",
      "r126",
      "r132",
      "r139",
      "r140",
      "r141",
      "r145",
      "r146",
      "r462",
      "r463",
      "r535",
      "r552"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Earning Per Share (Diluted)"
       }
      }
     },
     "localname": "EarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "auth_ref": [
      "r142",
      "r143",
      "r144",
      "r147"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for earnings per share.",
        "label": "Earnings Per Share [Text Block]"
       }
      }
     },
     "localname": "EarningsPerShareTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShare"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": {
     "auth_ref": [
      "r475"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "Effect of foreign exchange rate changes on cash"
       }
      }
     },
     "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "auth_ref": [
      "r400"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Effective Income Tax Rate Reconciliation, Percent",
        "terseLabel": "Effective Income Tax Rate Reconciliation, Percent"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrent": {
     "auth_ref": [
      "r39"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Employee-related Liabilities, Current",
        "terseLabel": "Accrued compensation and benefits"
       }
      }
     },
     "localname": "EmployeeRelatedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": {
     "auth_ref": [
      "r382"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement.",
        "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
        "terseLabel": "Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "auth_ref": [
      "r382"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
        "terseLabel": "Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions": {
     "auth_ref": [
      "r384"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of tax benefit from exercise of option under share-based payment arrangement.",
        "label": "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions",
        "terseLabel": "Share-based Payment Arrangement, Exercise of Option, Tax Benefit"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeStockOptionMember": {
     "auth_ref": [
      "r379"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time.",
        "label": "Share-based Payment Arrangement, Option [Member]"
       }
      }
     },
     "localname": "EmployeeStockOptionMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share Capital"
       }
      }
     },
     "localname": "EquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EquityComponentDomain": {
     "auth_ref": [
      "r0",
      "r66",
      "r67",
      "r68",
      "r115",
      "r116",
      "r117",
      "r119",
      "r127",
      "r129",
      "r148",
      "r189",
      "r305",
      "r312",
      "r385",
      "r386",
      "r387",
      "r410",
      "r411",
      "r461",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r483",
      "r560",
      "r561",
      "r562",
      "r594"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Equity Component [Domain]"
       }
      }
     },
     "localname": "EquityComponentDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]"
       }
      }
     },
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable": {
     "auth_ref": [
      "r467",
      "r471"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of information required and determined to be provided for purposes of reconciling beginning and ending balances of fair value measurements of assets using significant unobservable inputs (level 3). Such reconciliation, separately presenting changes during the period, at a minimum, may include, but is not limited to: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets) and gains or losses recognized in other comprehensive income, and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of level 3 (for example, transfers due to changes in the observability of significant inputs), by class of asset.",
        "label": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table]"
       }
      }
     },
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "auth_ref": [
      "r268",
      "r281",
      "r282",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r464",
      "r509",
      "r510",
      "r511"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient.",
        "label": "Fair Value Hierarchy and NAV [Axis]"
       }
      }
     },
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Measurements"
       }
      }
     },
     "localname": "FairValueDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "auth_ref": [
      "r470"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Fair Value Disclosures [Text Block]",
        "terseLabel": "Fair Value Measurements"
       }
      }
     },
     "localname": "FairValueDisclosuresTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurements"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "auth_ref": [
      "r268",
      "r339",
      "r340",
      "r345",
      "r346",
      "r464",
      "r509"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date.",
        "label": "Level 1"
       }
      }
     },
     "localname": "FairValueInputsLevel1Member",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "auth_ref": [
      "r268",
      "r281",
      "r282",
      "r339",
      "r340",
      "r345",
      "r346",
      "r464",
      "r510"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets.",
        "label": "Level 2"
       }
      }
     },
     "localname": "FairValueInputsLevel2Member",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "auth_ref": [
      "r268",
      "r281",
      "r282",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r464",
      "r511"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.",
        "label": "Level 3"
       }
      }
     },
     "localname": "FairValueInputsLevel3Member",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock": {
     "auth_ref": [
      "r467",
      "r471"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the fair value measurement of liabilities using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets), and gains or losses recognized in other comprehensive income (loss) and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs) by class of liability.",
        "label": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]",
        "terseLabel": "Schedule of changes in fair value measurements"
       }
      }
     },
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings": {
     "auth_ref": [
      "r468"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3).",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) Included in Earnings",
        "terseLabel": "Charges through profit or loss"
       }
      }
     },
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases": {
     "auth_ref": [
      "r469"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of purchases of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Purchases",
        "terseLabel": "Increase from acquisitions"
       }
      }
     },
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements": {
     "auth_ref": [
      "r469"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of settlements of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Settlements",
        "terseLabel": "Cash payments"
       }
      }
     },
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue": {
     "auth_ref": [
      "r467"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value",
        "periodEndLabel": "Balance at the end",
        "periodStartLabel": "Balance at the beginning"
       }
      }
     },
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "auth_ref": [
      "r268",
      "r281",
      "r282",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r509",
      "r510",
      "r511"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value.",
        "label": "Fair Value Hierarchy and NAV [Domain]"
       }
      }
     },
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Finite-Lived Intangible Asset, Useful Life",
        "terseLabel": "Acquired intangible assets estimated useful lives (Year)"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "auth_ref": [
      "r211"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Intangible assets, amortization cost",
        "terseLabel": "Intangible assets, amortization cost"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
        "terseLabel": "Finite-Lived Intangible Asset, Expected Amortization, after Year Five"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "auth_ref": [
      "r213"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
        "terseLabel": "Finite-Lived Intangible Asset, Expected Amortization, Year One"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year.",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "auth_ref": [
      "r213"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Five",
        "terseLabel": "Finite-Lived Intangible Asset, Expected Amortization, Year Five"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "auth_ref": [
      "r213"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four",
        "terseLabel": "Finite-Lived Intangible Asset, Expected Amortization, Year Four"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "auth_ref": [
      "r213"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three",
        "terseLabel": "Finite-Lived Intangible Asset, Expected Amortization, Year Three"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "auth_ref": [
      "r213"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two",
        "terseLabel": "Finite-Lived Intangible Asset, Expected Amortization, Year Two"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "auth_ref": [
      "r207",
      "r208",
      "r211",
      "r214",
      "r521",
      "r522"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by major type or class of finite-lived intangible assets.",
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "auth_ref": [
      "r211",
      "r522"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Intangible assets, cost",
        "terseLabel": "Intangible assets, cost"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Finite-Lived Intangible Assets [Line Items]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "auth_ref": [
      "r207",
      "r210"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.",
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "auth_ref": [
      "r211",
      "r521"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Net",
        "terseLabel": "Finite-Lived Intangible Assets, Net, Ending Balance",
        "totalLabel": "Intangible assets. net"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FurnitureAndFixturesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Furniture and Fixtures"
       }
      }
     },
     "localname": "FurnitureAndFixturesMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_GeneralAndAdministrativeExpense": {
     "auth_ref": [
      "r82"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.",
        "label": "General and administrative expense",
        "terseLabel": "General and administrative"
       }
      }
     },
     "localname": "GeneralAndAdministrativeExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GeneralAndAdministrativeExpenseMember": {
     "auth_ref": [
      "r76"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption encompassing general and administrative expense.",
        "label": "General and Administrative Expense [Member]"
       }
      }
     },
     "localname": "GeneralAndAdministrativeExpenseMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_Goodwill": {
     "auth_ref": [
      "r197",
      "r198",
      "r508",
      "r524"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 6.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "GOODWILL (Note 10)",
        "periodEndLabel": "Balance",
        "periodStartLabel": "Balance"
       }
      }
     },
     "localname": "Goodwill",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwillDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAcquiredDuringPeriod": {
     "auth_ref": [
      "r199"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.",
        "label": "Goodwill, Acquired During Period",
        "terseLabel": "Goodwill Acquired During Period"
       }
      }
     },
     "localname": "GoodwillAcquiredDuringPeriod",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillDisclosureTextBlock": {
     "auth_ref": [
      "r204"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for goodwill.",
        "label": "Goodwill Disclosure [Text Block]",
        "terseLabel": "Goodwill"
       }
      }
     },
     "localname": "GoodwillDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwill"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Goodwill [Line Items]"
       }
      }
     },
     "localname": "GoodwillLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments": {
     "auth_ref": [
      "r200",
      "r201",
      "r423"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) from foreign currency translation adjustments and purchase accounting adjustments of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Goodwill, Translation and Purchase Accounting Adjustments",
        "terseLabel": "Adjustments on account of foreign exchange"
       }
      }
     },
     "localname": "GoodwillTranslationAndPurchaseAccountingAdjustments",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GrossProfit": {
     "auth_ref": [
      "r79",
      "r109",
      "r161",
      "r165",
      "r169",
      "r172",
      "r175",
      "r188",
      "r242",
      "r243",
      "r244",
      "r246",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r473"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.",
        "label": "Gross Profit",
        "totalLabel": "GROSS MARGIN"
       }
      }
     },
     "localname": "GrossProfit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_HedgingDesignationAxis": {
     "auth_ref": [
      "r459",
      "r460"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by designation of purpose of derivative instrument.",
        "label": "Hedging Designation [Axis]"
       }
      }
     },
     "localname": "HedgingDesignationAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_HedgingDesignationDomain": {
     "auth_ref": [
      "r459"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designation of purpose of derivative instrument.",
        "label": "Hedging Designation [Domain]"
       }
      }
     },
     "localname": "HedgingDesignationDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "auth_ref": [
      "r71",
      "r161",
      "r165",
      "r169",
      "r172",
      "r175",
      "r523",
      "r531",
      "r537",
      "r553"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "totalLabel": "INCOME BEFORE INCOME TAXES"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeStatementAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS"
       }
      }
     },
     "localname": "IncomeStatementAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "auth_ref": [
      "r220",
      "r224"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by location in the income statement.",
        "label": "Income Statement Location [Axis]"
       }
      }
     },
     "localname": "IncomeStatementLocationAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "auth_ref": [
      "r224"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Location in the income statement.",
        "label": "Income Statement Location [Domain]"
       }
      }
     },
     "localname": "IncomeStatementLocationDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Taxes."
       }
      }
     },
     "localname": "IncomeTaxDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "auth_ref": [
      "r111",
      "r401",
      "r404",
      "r405",
      "r412",
      "r417",
      "r419",
      "r420",
      "r422"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.",
        "label": "Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxes"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r112",
      "r128",
      "r129",
      "r160",
      "r399",
      "r413",
      "r418",
      "r554"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Income Tax Expense (Benefit)",
        "totalLabel": "INCOME TAX EXPENSE (RECOVERY), Total"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "INCOME TAX EXPENSE (RECOVERY) (Note 18)"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "auth_ref": [
      "r101"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.",
        "label": "Cash paid during the period for income taxes"
       }
      }
     },
     "localname": "IncomeTaxesPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount 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.",
        "label": "Increase (Decrease) in Accounts Payable",
        "verboseLabel": "Accounts payable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsPayable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Increase (Decrease) in Accounts Receivable",
        "negatedLabel": "Trade accounts receivable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.",
        "label": "Accrued liabilities"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccruedLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInDeferredRevenue": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 9.0,
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable.",
        "label": "Deferred revenue",
        "terseLabel": "Deferred revenue"
       }
      }
     },
     "localname": "IncreaseDecreaseInDeferredRevenue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInIncomeTaxes": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the amounts payable to taxing authorities for taxes that are based on the reporting entity's earnings, net of amounts receivable from taxing authorities for refunds of overpayments or recoveries of income taxes, and in deferred and other tax liabilities and assets.",
        "label": "Increase (Decrease) in Income Taxes",
        "verboseLabel": "Income taxes payable"
       }
      }
     },
     "localname": "IncreaseDecreaseInIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Increase (Decrease) in Inventories",
        "negatedLabel": "Inventory"
       }
      }
     },
     "localname": "IncreaseDecreaseInInventories",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOperatingCapital": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period of all assets and liabilities used in operating activities.",
        "label": "Increase (Decrease) in Operating Capital",
        "negatedLabel": "Changes in operating assets and liabilities (Note 21)",
        "negatedTotalLabel": "Increase (Decrease) in Operating Capital, Total"
       }
      }
     },
     "localname": "IncreaseDecreaseInOperatingCapital",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherReceivables": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in receivables classified as other.",
        "label": "Increase (Decrease) in Other Receivables",
        "negatedLabel": "Other accounts receivable"
       }
      }
     },
     "localname": "IncreaseDecreaseInOtherReceivables",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.",
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "negatedTerseLabel": "Prepaid expenses and other"
       }
      }
     },
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "auth_ref": [
      "r133",
      "r134",
      "r135",
      "r141"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.",
        "label": "Dilutive effect of employee stock options (in shares)"
       }
      }
     },
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "auth_ref": [
      "r215"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for all or part of the information related to intangible assets.",
        "label": "Intangible Assets Disclosure [Text Block]",
        "terseLabel": "Intangible Assets"
       }
      }
     },
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssets"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "auth_ref": [
      "r205",
      "r209"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "INTANGIBLE ASSETS, NET (Note 9)"
       }
      }
     },
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Assets"
       }
      }
     },
     "localname": "IntangibleAssetsNetExcludingGoodwillAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_InterestExpense": {
     "auth_ref": [
      "r70",
      "r159",
      "r484",
      "r487",
      "r536"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the cost of borrowed funds accounted for as interest expense.",
        "label": "Interest Expense",
        "negatedLabel": "INTEREST EXPENSE"
       }
      }
     },
     "localname": "InterestExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestPaidNet": {
     "auth_ref": [
      "r93",
      "r95",
      "r101"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for 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.",
        "label": "Cash paid during the period for interest"
       }
      }
     },
     "localname": "InterestPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory"
       }
      }
     },
     "localname": "InventoryDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "auth_ref": [
      "r194"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Inventory Disclosure [Text Block]",
        "terseLabel": "Inventory"
       }
      }
     },
     "localname": "InventoryDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureInventory"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryNet": {
     "auth_ref": [
      "r4",
      "r48",
      "r508"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.",
        "label": "Inventory (Note 7)"
       }
      }
     },
     "localname": "InventoryNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InvestmentIncomeNet": {
     "auth_ref": [
      "r83",
      "r84"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 3.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after accretion (amortization) of discount (premium), and investment expense, of interest income and dividend income on nonoperating securities.",
        "label": "INVESTMENT INCOME"
       }
      }
     },
     "localname": "InvestmentIncomeNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeaseCost": {
     "auth_ref": [
      "r502",
      "r504"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lease cost recognized by lessee for lease contract.",
        "label": "Lease, Cost",
        "totalLabel": "Total operating lease cost"
       }
      }
     },
     "localname": "LeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeaseCostTableTextBlock": {
     "auth_ref": [
      "r502"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.",
        "label": "Lease, Cost [Table Text Block]",
        "terseLabel": "Schedule of components of operating lease expense"
       }
      }
     },
     "localname": "LeaseCostTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "auth_ref": [
      "r217"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additions or improvements to assets held under a lease arrangement.",
        "label": "Leasehold Improvements"
       }
      }
     },
     "localname": "LeaseholdImprovementsMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LeasesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Leases"
       }
      }
     },
     "localname": "LeasesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeLeaseDescriptionLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Lessee, Lease, Description [Line Items]"
       }
      }
     },
     "localname": "LesseeLeaseDescriptionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeLeaseDescriptionTable": {
     "auth_ref": [
      "r495"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about lessee's leases.",
        "label": "Lessee, Lease, Description [Table]"
       }
      }
     },
     "localname": "LesseeLeaseDescriptionTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "auth_ref": [
      "r503"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.",
        "label": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]",
        "terseLabel": "Schedule of maturities for operating lease liabilities"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "auth_ref": [
      "r503"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease.",
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "totalLabel": "Total lease payments"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "auth_ref": [
      "r503"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r503"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "terseLabel": "2027"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "auth_ref": [
      "r503"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "terseLabel": "2026"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "auth_ref": [
      "r503"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "auth_ref": [
      "r503"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.",
        "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount",
        "terseLabel": "Less: imputed interest"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseRemainingLeaseTerm": {
     "auth_ref": [
      "r493"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Remaining lease term of operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Lessee, Operating Lease, Remaining Lease Term",
        "terseLabel": "Lessee, Operating Lease, Remaining Lease Term (Year)"
       }
      }
     },
     "localname": "LesseeOperatingLeaseRemainingLeaseTerm",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_LesseeOperatingLeaseRenewalTerm": {
     "auth_ref": [
      "r494"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Lessee, Operating Lease, Renewal Term",
        "terseLabel": "Lessee, Operating Lease, Renewal Term (Year)"
       }
      }
     },
     "localname": "LesseeOperatingLeaseRenewalTerm",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "auth_ref": [
      "r505"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.",
        "label": "Lessee, Operating Leases [Text Block]",
        "terseLabel": "Leases"
       }
      }
     },
     "localname": "LesseeOperatingLeasesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeases"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LettersOfCreditOutstandingAmount": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The total amount of the contingent obligation under letters of credit outstanding as of the reporting date.",
        "label": "Letters of Credit Outstanding, Amount",
        "terseLabel": "Letters of Credit Outstanding, Amount"
       }
      }
     },
     "localname": "LettersOfCreditOutstandingAmount",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Liabilities": {
     "auth_ref": [
      "r38",
      "r109",
      "r167",
      "r188",
      "r242",
      "r243",
      "r244",
      "r246",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r454",
      "r457",
      "r458",
      "r473",
      "r506",
      "r507"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.",
        "label": "Liabilities",
        "totalLabel": "LIABILITIES, TOTAL"
       }
      }
     },
     "localname": "Liabilities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "auth_ref": [
      "r26",
      "r109",
      "r188",
      "r473",
      "r508",
      "r529",
      "r546"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.",
        "label": "Liabilities and Equity",
        "totalLabel": "LIABILITIES AND SHAREHOLDERS' EQUITY, TOTAL"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Equity [Abstract]",
        "verboseLabel": "LIABILITIES AND SHAREHOLDERS' EQUITY"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesCurrent": {
     "auth_ref": [
      "r40",
      "r109",
      "r188",
      "r242",
      "r243",
      "r244",
      "r246",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r454",
      "r457",
      "r458",
      "r473",
      "r506",
      "r507",
      "r508"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Liabilities, Current",
        "totalLabel": "LIABILITIES, CURRENT, TOTAL"
       }
      }
     },
     "localname": "LiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CURRENT LIABILITIES",
        "verboseLabel": "CURRENT LIABILITIES"
       }
      }
     },
     "localname": "LiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilityForUncertainTaxPositionsNoncurrent": {
     "auth_ref": [
      "r42"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount recognized for uncertainty in income taxes classified as noncurrent.",
        "label": "Liability for Uncertainty in Income Taxes, Noncurrent",
        "terseLabel": "Liability for Uncertainty in Income Taxes, Noncurrent"
       }
      }
     },
     "localname": "LiabilityForUncertainTaxPositionsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LicenseMember": {
     "auth_ref": [
      "r334"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Right to use intangible asset. Intangible asset includes, but is not limited to, patent, copyright, technology, manufacturing process, software or trademark.",
        "label": "License"
       }
      }
     },
     "localname": "LicenseMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LineOfCredit": {
     "auth_ref": [
      "r15",
      "r528",
      "r541"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Long-Term Line of Credit",
        "terseLabel": "Long-term Line of Credit, Total"
       }
      }
     },
     "localname": "LineOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "auth_ref": [
      "r37"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.",
        "label": "Line of Credit Facility, Maximum Borrowing Capacity",
        "terseLabel": "Line of Credit Facility, Maximum Borrowing Capacity"
       }
      }
     },
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": {
     "auth_ref": [
      "r37"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).",
        "label": "Line of Credit Facility, Remaining Borrowing Capacity",
        "terseLabel": "Available for use"
       }
      }
     },
     "localname": "LineOfCreditFacilityRemainingBorrowingCapacity",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility.",
        "label": "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage",
        "terseLabel": "Line of Credit Facility, Unused Capacity, Commitment Fee Percentage"
       }
      }
     },
     "localname": "LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock": {
     "auth_ref": [
      "r187"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for claims held for amounts due a 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.",
        "label": "Loans, Notes, Trade and Other Receivables Disclosure [Text Block]",
        "terseLabel": "Trade Accounts Receivable"
       }
      }
     },
     "localname": "LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivable"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LongTermDebtNoncurrent": {
     "auth_ref": [
      "r41"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after unamortized (discount) premium and debt issuance costs of long-term debt classified as noncurrent and excluding amounts to be repaid within one year or the normal operating cycle, if longer. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.",
        "label": "LONG-TERM DEBT (Note 12)"
       }
      }
     },
     "localname": "LongTermDebtNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LossContingenciesLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Loss Contingencies [Line Items]"
       }
      }
     },
     "localname": "LossContingenciesLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LossContingenciesTable": {
     "auth_ref": [
      "r231",
      "r232",
      "r233",
      "r234",
      "r235",
      "r236",
      "r237",
      "r239",
      "r240"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Discloses the specific components (such as the nature, name, and date) of the loss contingency and gives an estimate of the possible loss or range of loss, or states that a reasonable estimate cannot be made. Excludes environmental contingencies, warranties and unconditional purchase obligations.",
        "label": "Loss Contingencies [Table]"
       }
      }
     },
     "localname": "LossContingenciesTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_MeasurementInputDiscountRateMember": {
     "auth_ref": [
      "r465"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement input using interest rate to determine present value of future cash flows.",
        "label": "Measurement Input, Discount Rate [Member]"
       }
      }
     },
     "localname": "MeasurementInputDiscountRateMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MeasurementInputLongTermRevenueGrowthRateMember": {
     "auth_ref": [
      "r465"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement input using compounded annualized rate of long-term growth in revenue.",
        "label": "Measurement Input, Long-term Revenue Growth Rate [Member]"
       }
      }
     },
     "localname": "MeasurementInputLongTermRevenueGrowthRateMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MeasurementInputTypeAxis": {
     "auth_ref": [
      "r465"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of measurement input used to determine value of asset and liability.",
        "label": "Measurement Input Type [Axis]"
       }
      }
     },
     "localname": "MeasurementInputTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_MeasurementInputTypeDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement input used to determine value of asset and liability.",
        "label": "Measurement Input Type [Domain]"
       }
      }
     },
     "localname": "MeasurementInputTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "auth_ref": [
      "r94"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.",
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "totalLabel": "Cash (used in) provided by financing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "FINANCING ACTIVITIES"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "auth_ref": [
      "r94"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.",
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "totalLabel": "Cash used in investing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "INVESTING ACTIVITIES"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "auth_ref": [
      "r94",
      "r96",
      "r99"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.",
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "totalLabel": "Cash provided by operating activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "OPERATING ACTIVITIES"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetIncomeLoss": {
     "auth_ref": [
      "r1",
      "r60",
      "r63",
      "r68",
      "r72",
      "r99",
      "r109",
      "r118",
      "r122",
      "r123",
      "r124",
      "r125",
      "r128",
      "r129",
      "r138",
      "r161",
      "r165",
      "r169",
      "r172",
      "r175",
      "r188",
      "r242",
      "r243",
      "r244",
      "r246",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r463",
      "r473",
      "r532",
      "r549"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": {
       "order": 2.0,
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0
      },
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.",
        "label": "Net income",
        "terseLabel": "Net Income",
        "totalLabel": "NET INCOME",
        "verboseLabel": "Net income for purposes of calculating basic and diluted earnings per share"
       }
      }
     },
     "localname": "NetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "terseLabel": "Recently issued accounting pronouncements"
       }
      }
     },
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NoncompeteAgreementsMember": {
     "auth_ref": [
      "r436"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party.",
        "label": "Non-compete covenants"
       }
      }
     },
     "localname": "NoncompeteAgreementsMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NoncurrentAssets": {
     "auth_ref": [
      "r179"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets.",
        "label": "Geographical long-lived assets",
        "terseLabel": "Geographical long-lived assets"
       }
      }
     },
     "localname": "NoncurrentAssets",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NondesignatedMember": {
     "auth_ref": [
      "r459"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Derivative instrument not designated as hedging instrument under Generally Accepted Accounting Principles (GAAP).",
        "label": "Not Designated as Hedging Instrument [Member]"
       }
      }
     },
     "localname": "NondesignatedMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NumberOfReportableSegments": {
     "auth_ref": [
      "r154"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.",
        "label": "Number of Reportable Segments",
        "terseLabel": "Number of reportable segments"
       }
      }
     },
     "localname": "NumberOfReportableSegments",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "us-gaap_OperatingExpenses": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.",
        "label": "Operating Expenses",
        "totalLabel": "Operating Expenses, Total"
       }
      }
     },
     "localname": "OperatingExpenses",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingIncomeLoss": {
     "auth_ref": [
      "r161",
      "r165",
      "r169",
      "r172",
      "r175"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The net result for the period of deducting operating expenses from operating revenues.",
        "label": "INCOME FROM OPERATIONS"
       }
      }
     },
     "localname": "OperatingIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseCost": {
     "auth_ref": [
      "r496",
      "r504"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.",
        "label": "Operating lease cost",
        "terseLabel": "Operating lease cost"
       }
      }
     },
     "localname": "OperatingLeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiability": {
     "auth_ref": [
      "r491"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.",
        "label": "Total lease obligations",
        "verboseLabel": "Total lease obligations"
       }
      }
     },
     "localname": "OperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "auth_ref": [
      "r491"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.",
        "label": "Lease obligations (Note 13)",
        "verboseLabel": "Current"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r491"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.",
        "label": "Operating Lease, Liability, Noncurrent",
        "terseLabel": "LEASE OBLIGATIONS (Note 13)",
        "verboseLabel": "Long-term"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasePayments": {
     "auth_ref": [
      "r492",
      "r498"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.",
        "label": "Operating cash outflows from operating leases included in measurement of lease liabilities",
        "terseLabel": "Operating cash outflows from operating leases included in measurement of lease liabilities"
       }
      }
     },
     "localname": "OperatingLeasePayments",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "auth_ref": [
      "r490"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's right to use underlying asset under operating lease.",
        "label": "RIGHT-OF-USE ASSETS (Note 13)"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAsset",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "auth_ref": [
      "r501",
      "r504"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average discount rate for operating lease calculated at point in time.",
        "label": "Weighted average discount rate (%)",
        "terseLabel": "Weighted average discount rate (%)"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "auth_ref": [
      "r500",
      "r504"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Weighted average remaining lease term (years) (Year)",
        "terseLabel": "Weighted average remaining lease term (years)"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Description of the Business"
       }
      }
     },
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherAccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r8",
      "r9",
      "r10",
      "r39"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.",
        "label": "Other Accrued Liabilities, Current",
        "terseLabel": "Other accrued liabilities"
       }
      }
     },
     "localname": "OtherAccruedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherAssetsCurrent": {
     "auth_ref": [
      "r49",
      "r508"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_OtherReceivablesNetCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current assets classified as other.",
        "label": "Other receivables",
        "terseLabel": "Other receivables"
       }
      }
     },
     "localname": "OtherAssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "auth_ref": [
      "r34"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncurrent assets classified as other.",
        "label": "OTHER LONG-TERM ASSETS (Note 19)"
       }
      }
     },
     "localname": "OtherAssetsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": {
     "auth_ref": [
      "r54"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": {
       "order": 1.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTax",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.",
        "label": "Foreign currency translation adjustment, net of income tax (recovery) expense of $290 for the year ended January 31, 2021 (January 31, 2020 - ($132); January 31, 2019 - ($44))",
        "terseLabel": "Foreign currency translation adjustment, net of income tax expense (recovery) of ($88) and ($208) for the three and six month periods ended July 31, 2022 (($1) and ($186) for the same periods in fiscal 2022)"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax": {
     "auth_ref": [
      "r54",
      "r57",
      "r474",
      "r482"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of tax expense (benefit), after reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.",
        "label": "Foreign currency translation adjustment, income tax expense (recovery)"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeParentheticals"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTax": {
     "auth_ref": [
      "r61",
      "r64",
      "r66",
      "r67",
      "r69",
      "r73",
      "r305",
      "r476",
      "r481",
      "r483",
      "r533",
      "r550"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": {
       "order": 1.0,
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax and reclassification adjustments of other comprehensive income (loss).",
        "label": "Other Comprehensive Income (Loss), Net of Tax",
        "totalLabel": "Total other comprehensive income (loss)"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": {
     "auth_ref": [
      "r61",
      "r64",
      "r451",
      "r452",
      "r455"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity.",
        "label": "Other comprehensive income (loss), net of income taxes"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossTaxAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other comprehensive income (loss):"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossTaxAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherCostAndExpenseOperating": {
     "auth_ref": [
      "r81"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 5.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The total amount of other operating cost and expense items that are associated with the entity's normal revenue producing operation.",
        "label": "Other Cost and Expense, Operating",
        "terseLabel": "Other charges (Note 20)",
        "totalLabel": "Other non-operating expense, Total"
       }
      }
     },
     "localname": "OtherCostAndExpenseOperating",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherIncomeAndExpensesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Charges."
       }
      }
     },
     "localname": "OtherIncomeAndExpensesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock": {
     "auth_ref": [
      "r337",
      "r394"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for other income or other expense items (both operating and nonoperating). Sources of nonoperating income or nonoperating expense that may be disclosed, include amounts earned from dividends, interest on securities, profits (losses) on securities, net and miscellaneous other income or income deductions.",
        "label": "Other Charges"
       }
      }
     },
     "localname": "OtherIncomeAndOtherExpenseDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherCharges"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_OtherNoncashIncomeExpense": {
     "auth_ref": [
      "r99"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other.",
        "label": "Other Noncash Income (Expense)",
        "negatedLabel": "Other non-cash operating activities"
       }
      }
     },
     "localname": "OtherNoncashIncomeExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherReceivablesNetCurrent": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance, of receivables classified as other, due within one year or the operating cycle, if longer.",
        "label": "Other (Note 6)",
        "totalLabel": "Other Receivables, Net, Current, Total"
       }
      }
     },
     "localname": "OtherReceivablesNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherReceivablesDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities": {
     "auth_ref": [
      "r92"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date.",
        "label": "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities",
        "negatedLabel": "Payment of contingent consideration"
       }
      }
     },
     "localname": "PaymentForContingentConsiderationLiabilityFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsOfDebtIssuanceCosts": {
     "auth_ref": [
      "r91"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow paid to third parties in connection with debt origination, which will be amortized over the remaining maturity period of the associated long-term debt.",
        "label": "Payments of Debt Issuance Costs",
        "negatedLabel": "Payment of debt issuance costs"
       }
      }
     },
     "localname": "PaymentsOfDebtIssuanceCosts",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "auth_ref": [
      "r86"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.",
        "label": "Cash, net of cash acquired",
        "negatedLabel": "Acquisition of subsidiaries, net of cash acquired (Note 3)",
        "terseLabel": "Cash, less cash acquired related to NetCHB ($658), Foxtrot (Nil) and XPS ($3,932)",
        "verboseLabel": "Cash, net of cash acquired"
       }
      }
     },
     "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "auth_ref": [
      "r87"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "negatedLabel": "Additions to property and equipment"
       }
      }
     },
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PerformanceSharesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share-based payment arrangement awarded for meeting performance target.",
        "label": "Performance Shares [Member]"
       }
      }
     },
     "localname": "PerformanceSharesMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PlanNameAxis": {
     "auth_ref": [
      "r354",
      "r383"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by plan name for share-based payment arrangement.",
        "label": "Plan Name [Axis]"
       }
      }
     },
     "localname": "PlanNameAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PlanNameDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Plan name for share-based payment arrangement.",
        "label": "Plan Name [Domain]"
       }
      }
     },
     "localname": "PlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "auth_ref": [
      "r6",
      "r29",
      "r30"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.",
        "label": "Prepaid expenses and other"
       }
      }
     },
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromIssuanceOfCommonStock": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow from the additional capital contribution to the entity.",
        "label": "Issuance of common shares for cash, net of issuance costs (Note 15)"
       }
      }
     },
     "localname": "ProceedsFromIssuanceOfCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromLinesOfCredit": {
     "auth_ref": [
      "r89",
      "r108"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.",
        "label": "Proceeds from borrowing on the credit facility"
       }
      }
     },
     "localname": "ProceedsFromLinesOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "auth_ref": [
      "r88",
      "r384"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement.",
        "label": "Proceeds from Stock Options Exercised",
        "terseLabel": "Proceeds from Stock Options Exercised"
       }
      }
     },
     "localname": "ProceedsFromStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "auth_ref": [
      "r33",
      "r219"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.",
        "label": "Long-Lived Tangible Asset [Axis]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "auth_ref": [
      "r221",
      "r569",
      "r570",
      "r571"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Property, Plant and Equipment Disclosure [Text Block]",
        "terseLabel": "Property and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipment"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "auth_ref": [
      "r32",
      "r217"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Cost",
        "terseLabel": "Cost"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentGross",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Property, Plant and Equipment [Line Items]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "auth_ref": [
      "r11",
      "r12",
      "r219",
      "r508",
      "r538",
      "r547"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "PROPERTY AND EQUIPMENT, NET (Note 8)",
        "totalLabel": "Net"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "auth_ref": [
      "r11",
      "r219"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Property, Plant and Equipment [Table Text Block]",
        "terseLabel": "Schedule of property and equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "auth_ref": [
      "r11",
      "r217"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Long-Lived Tangible Asset [Domain]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "auth_ref": [
      "r77",
      "r191"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.",
        "label": "Current period provision for expected losses",
        "terseLabel": "Current period provision for expected losses"
       }
      }
     },
     "localname": "ProvisionForDoubtfulAccounts",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of purchase arrangement to be paid in remainder of current fiscal year. Includes, but is not limited to, recorded and unrecorded purchase obligations, long-term purchase commitment, and short-term purchase commitment.",
        "label": "Purchase Obligation, to be Paid, Remainder of Fiscal Year",
        "terseLabel": "Remainder of 2023"
       }
      }
     },
     "localname": "PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ReceivablesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trade Accounts Receivable"
       }
      }
     },
     "localname": "ReceivablesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_RepaymentsOfDebt": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow during the period from the repayment of aggregate short-term and long-term debt. Excludes payment of capital lease obligations.",
        "label": "Repayments of Debt",
        "negatedLabel": "Credit facility and other debt repayments"
       }
      }
     },
     "localname": "RepaymentsOfDebt",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "auth_ref": [
      "r395",
      "r519",
      "r583"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.",
        "label": "Research and development expense",
        "terseLabel": "Research and development"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpenseMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included.",
        "label": "Research and Development Expense [Member]"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpenseMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met.",
        "label": "Restricted Stock Units (RSUs) [Member]"
       }
      }
     },
     "localname": "RestrictedStockUnitsRSUMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestructuringCharges": {
     "auth_ref": [
      "r98",
      "r222",
      "r225",
      "r226"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_OtherCostAndExpenseOperating",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.",
        "label": "Restructuring on plans",
        "terseLabel": "Restructuring plans"
       }
      }
     },
     "localname": "RestructuringCharges",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "auth_ref": [
      "r22",
      "r312",
      "r388",
      "r508",
      "r545",
      "r563",
      "r565"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings",
        "verboseLabel": "Retained earnings"
       }
      }
     },
     "localname": "RetainedEarningsAccumulatedDeficit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsMember": {
     "auth_ref": [
      "r0",
      "r115",
      "r116",
      "r117",
      "r119",
      "r127",
      "r129",
      "r189",
      "r385",
      "r386",
      "r387",
      "r410",
      "r411",
      "r461",
      "r560",
      "r562"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained earnings (accumulated deficit)"
       }
      }
     },
     "localname": "RetainedEarningsMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract Balances, Performance Obligations and Contract Costs"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": {
     "auth_ref": [
      "r157",
      "r158",
      "r164",
      "r170",
      "r171",
      "r177",
      "r178",
      "r181",
      "r329",
      "r330",
      "r520"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.",
        "label": "REVENUES",
        "terseLabel": "Geographical revenue",
        "verboseLabel": "Revenues"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerIncludingAssessedTax",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "auth_ref": [
      "r319",
      "r320",
      "r321",
      "r322",
      "r323",
      "r324",
      "r327",
      "r328",
      "r333",
      "r336"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Contract Balances, Performance Obligations and Contract Costs."
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "auth_ref": [
      "r325"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue.",
        "label": "Revenue, Remaining Performance Obligation, Amount",
        "terseLabel": "Remaining performance obligation, Amount"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligation",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "auth_ref": [
      "r326"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
        "terseLabel": "Remaining performance obligation, Period (Month)"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "auth_ref": [
      "r326"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about expected timing for satisfying remaining performance obligation.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationPercentage": {
     "auth_ref": [
      "r326"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue.",
        "label": "Revenue, Remaining Performance Obligation, Percentage",
        "terseLabel": "Remaining performance obligation, Percentage"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationPercentage",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": {
     "auth_ref": [
      "r499",
      "r504"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability.",
        "label": "New ROU assets obtained in exchange for lease obligations",
        "terseLabel": "New ROU assets obtained in exchange for lease obligations"
       }
      }
     },
     "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SaleOfStockNameOfTransactionDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sale of the entity's stock, including, but not limited to, initial public offering (IPO) and private placement.",
        "label": "Sale of Stock [Domain]"
       }
      }
     },
     "localname": "SaleOfStockNameOfTransactionDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": {
     "auth_ref": [
      "r47"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.",
        "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]",
        "terseLabel": "Schedule of trade accounts receivable"
       }
      }
     },
     "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of accrued liabilities.",
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "terseLabel": "Schedule of accrued liabilities"
       }
      }
     },
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock": {
     "auth_ref": [
      "r207"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the characteristics, including initial carrying value, residual amount, weighted average useful life, of finite-lived intangible assets acquired during the period by major class. A major class is composed of intangible assets that can be grouped together because they are similar, either by nature or by their use in the operations of the company.",
        "label": "Schedule of Acquired Finite-Lived Intangible Assets by Major Class [Table Text Block]",
        "terseLabel": "Schedule of acquired intangible assets are being amortized over their estimated useful lives"
       }
      }
     },
     "localname": "ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": {
     "auth_ref": [
      "r428",
      "r429"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities.",
        "label": "Schedule of Business Acquisitions, by Acquisition [Table]"
       }
      }
     },
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": {
     "auth_ref": [
      "r428",
      "r429"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table  does not include leveraged buyouts.",
        "label": "Schedule of Business Acquisitions, by Acquisition [Table Text Block]",
        "terseLabel": "Schedule of preliminary purchase price allocation for businesses acquired"
       }
      }
     },
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of supplemental cash flow information for the periods presented.",
        "label": "Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]",
        "terseLabel": "Schedule of cash flow changes in operating asset and liabilities"
       }
      }
     },
     "localname": "ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of derivative assets at fair value.",
        "label": "Schedule of Derivative Assets at Fair Value [Table Text Block]",
        "terseLabel": "Schedule of financial instruments measured at fair value on recurring basis"
       }
      }
     },
     "localname": "ScheduleOfDerivativeAssetsAtFairValueTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "auth_ref": [
      "r141"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]",
        "terseLabel": "Schedule of computation of basic and diluted earnings per share"
       }
      }
     },
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable": {
     "auth_ref": [
      "r132",
      "r136",
      "r139",
      "r141",
      "r146"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The table contains disclosure pertaining to an entity's basic earnings per share.",
        "label": "Schedule of Earnings Per Share, Basic, by Common Class, Including Two Class Method [Table]"
       }
      }
     },
     "localname": "ScheduleOfEarningsPerShareBasicByCommonClassTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureEarningsPerShareDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "auth_ref": [
      "r353",
      "r380",
      "r390"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement.",
        "label": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]",
        "terseLabel": "Schedule of estimated stock-based compensation expense recognized in condensed consolidated statement of operations"
       }
      }
     },
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock": {
     "auth_ref": [
      "r179"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the names of foreign countries in which material long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets are located, and amount of such long-lived assets located in that country or foreign geographic area.",
        "label": "Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]",
        "terseLabel": "Schedule of disclosure on geographic areas, long-lived assets in individual foreign countries by country"
       }
      }
     },
     "localname": "ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "auth_ref": [
      "r207",
      "r210",
      "r521"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Schedule of Finite-Lived Intangible Assets [Table]"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "auth_ref": [
      "r207",
      "r210"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.",
        "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]",
        "verboseLabel": "Schedule of intangible asset"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "auth_ref": [
      "r202",
      "r203"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of goodwill and the changes during the year due to acquisition, sale, impairment or for other reasons.",
        "label": "Schedule of Goodwill [Table]"
       }
      }
     },
     "localname": "ScheduleOfGoodwillTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwillDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "auth_ref": [
      "r202",
      "r203"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.",
        "label": "Schedule of Goodwill [Table Text Block]",
        "terseLabel": "Schedule of goodwill"
       }
      }
     },
     "localname": "ScheduleOfGoodwillTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureGoodwillTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock": {
     "auth_ref": [
      "r364"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the changes in outstanding nonvested shares.",
        "label": "Schedule of Nonvested Share Activity [Table Text Block]",
        "terseLabel": "Schedule of Non vested share activity"
       }
      }
     },
     "localname": "ScheduleOfNonvestedShareActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock": {
     "auth_ref": [
      "r81"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of each detailed component of other operating costs and expenses that are applicable to sales and revenues, but not included in the cost of sales in the income statement.",
        "label": "Schedule of Other Operating Cost and Expense, by Component [Table Text Block]",
        "terseLabel": "Schedule of components of other charges"
       }
      }
     },
     "localname": "ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "auth_ref": [
      "r33",
      "r219"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about 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.",
        "label": "Property, Plant and Equipment [Table]"
       }
      }
     },
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock": {
     "auth_ref": [
      "r223",
      "r227"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of an entity's restructuring reserve that occurred during the period associated with the exit from or disposal of business activities or restructurings for each major type of cost. This element may also include a description of any reversal and other adjustment made during the period to the amount of an accrued liability for restructuring activities. This element may be used to encapsulate the roll forward presentations of an entity's restructuring reserve by type of cost and in total, and explanation of changes that occurred in the period.",
        "label": "Schedule of Restructuring Reserve by Type of Cost [Table Text Block]",
        "terseLabel": "Schedule of changes in restructuring plan"
       }
      }
     },
     "localname": "ScheduleOfRestructuringReserveByTypeOfCostTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureOtherChargesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock": {
     "auth_ref": [
      "r78",
      "r178"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the names of foreign countries from which revenue is material and the amount of revenue from external customers attributed to those countries. An entity may also provide subtotals of geographic information about groups of countries.",
        "label": "Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area [Table Text Block]",
        "terseLabel": "Schedule of disaggregated revenue information by geographic location of customer and revenue"
       }
      }
     },
     "localname": "ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": {
     "auth_ref": [
      "r161",
      "r162",
      "r168",
      "r202"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A table disclosing the profit or loss and total assets for each reportable segment of the entity. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.",
        "label": "Schedule of Segment Reporting Information, by Segment [Table]"
       }
      }
     },
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": {
     "auth_ref": [
      "r161",
      "r162",
      "r168",
      "r202"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.",
        "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]",
        "terseLabel": "Schedule of segment reporting information, by segment"
       }
      }
     },
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "auth_ref": [
      "r354",
      "r383"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about share-based payment arrangement.",
        "label": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock": {
     "auth_ref": [
      "r383"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of option exercise prices, by grouped ranges, including the upper and lower limits of the price range, the number of shares under option, weighted average exercise price and remaining contractual option terms.",
        "label": "Share-based Payment Arrangement, Option, Exercise Price Range [Table Text Block]",
        "terseLabel": "Summary of performance share units activity"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "auth_ref": [
      "r357",
      "r368",
      "r371"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.",
        "label": "Share-based Payment Arrangement, Option, Activity [Table Text Block]",
        "terseLabel": "Schedule of stock option activity"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": {
     "auth_ref": [
      "r374"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.",
        "label": "Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]",
        "terseLabel": "Schedule of weighted-average assumptions"
       }
      }
     },
     "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year.",
        "label": "Share-based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]",
        "terseLabel": "Summary of restricted share units activity"
       }
      }
     },
     "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfStockByClassTable": {
     "auth_ref": [
      "r44",
      "r106",
      "r149",
      "r150",
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r294",
      "r298",
      "r303",
      "r306",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule detailing information related to equity by class of stock. Class of stock includes common, convertible, and preferred stocks which are not redeemable or redeemable solely at the option of the issuer. It also includes preferred stock with redemption features that are solely within the control of the issuer and mandatorily redeemable stock if redemption is required to occur only upon liquidation or termination of the reporting entity.",
        "label": "Schedule of Stock by Class [Table]"
       }
      }
     },
     "localname": "ScheduleOfStockByClassTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SegmentReportingAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segmented Information."
       }
      }
     },
     "localname": "SegmentReportingAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "auth_ref": [
      "r153",
      "r155",
      "r156",
      "r161",
      "r163",
      "r169",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r180",
      "r181",
      "r182"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.",
        "label": "Segmented Information"
       }
      }
     },
     "localname": "SegmentReportingDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SegmentReportingInformationLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Segment Reporting Information [Line Items]"
       }
      }
     },
     "localname": "SegmentReportingInformationLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails",
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SellingAndMarketingExpense": {
     "auth_ref": [],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations": {
       "order": 3.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services.",
        "label": "Sales and marketing"
       }
      }
     },
     "localname": "SellingAndMarketingExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SellingAndMarketingExpenseMember": {
     "auth_ref": [
      "r76"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption encompassing selling and marketing expense.",
        "label": "Selling and Marketing Expense [Member]"
       }
      }
     },
     "localname": "SellingAndMarketingExpenseMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ServiceMember": {
     "auth_ref": [
      "r334"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Assistance, including, but not limited to, technology, license and maintenance, license and service, maintenance, oil and gas, and financial service.",
        "label": "Service"
       }
      }
     },
     "localname": "ServiceMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensation": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": {
       "order": 8.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncash expense for share-based payment arrangement.",
        "label": "Share-based Payment Arrangement, Noncash Expense",
        "verboseLabel": "Stock-based compensation expense (Note 17)"
       }
      }
     },
     "localname": "ShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "auth_ref": [
      "r366"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "Number of PSUs Granted (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r366"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "PSUs Granted, Weighted-Average Granted Date Fair Value (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r365"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
        "periodEndLabel": "Weighted-Average Grant Date Fair Value, PSU (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms": {
     "auth_ref": [
      "r372"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for equity-based awards excluding options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Weighted-Average Remaining Contractual, PSU (Year)",
        "terseLabel": "Weighted-Average Remaining Contractual, PSU (Year)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "auth_ref": [
      "r367"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "negatedLabel": "Exercised (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue": {
     "auth_ref": [
      "r370"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r367"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Exercised (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "auth_ref": [
      "r377"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Expected dividend yield (%)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "auth_ref": [
      "r376"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Expected volatility (%)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "auth_ref": [
      "r378"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares.",
        "label": "Risk-free rate (%)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber": {
     "auth_ref": [
      "r358",
      "r360"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of equity instruments other than options outstanding, including both vested and non-vested instruments.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
        "periodEndLabel": "Number of Units Outstanding (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "auth_ref": [
      "r383"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "auth_ref": [
      "r361"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.",
        "label": "Exercisable, shares (in shares)",
        "terseLabel": "Exercisable, shares (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "auth_ref": [
      "r361"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.",
        "label": "Exercisable, weighted-average exercise price (in dollars per share)",
        "terseLabel": "Exercisable, weighted-average exercise price (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "auth_ref": [
      "r370"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": {
     "auth_ref": [
      "r363"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod",
        "negatedLabel": "Forfeited, shares (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Gross number of share options (or share units) granted during the period.",
        "label": "Granted, shares (in shares)",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares)",
        "verboseLabel": "Granted, shares (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r369"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.",
        "label": "Granted, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "auth_ref": [
      "r383"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.",
        "label": "Aggregate Intrinsic Value",
        "periodEndLabel": "Aggregate Intrinsic Value",
        "periodStartLabel": "Aggregate Intrinsic Value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "auth_ref": [
      "r359",
      "r383"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of options outstanding, including both vested and non-vested options.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
        "periodEndLabel": "Number of Stock Options Outstanding (in shares)",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r358"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
        "periodEndLabel": "Weighted-Average Exercise Price (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber": {
     "auth_ref": [
      "r373"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of fully vested and expected to vest exercisable options that may be converted into shares under option plan. 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.",
        "label": "Vested or expected to vest, RSU (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": {
     "auth_ref": [
      "r371"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. 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.",
        "label": "Vested or expected to vest, aggregate intrinsic value",
        "terseLabel": "Vested or expected to vest, aggregate intrinsic value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": {
     "auth_ref": [
      "r372"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. 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.",
        "label": "Vested or expected to vest, shares (in shares)",
        "terseLabel": "Vested or expected to vest, shares (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r372"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. 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.",
        "label": "Vested or expected to vest, weighted-average exercise price (in dollars per share)",
        "terseLabel": "Vested or expected to vest, weighted-average exercise price (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod": {
     "auth_ref": [
      "r383"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares issued under share-based payment arrangement.",
        "label": "Performance units issued (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "auth_ref": [
      "r352",
      "r355"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Award under share-based payment arrangement.",
        "label": "Award Type [Domain]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.",
        "label": "Exercised, weighted-average exercise price (in dollars per share)",
        "terseLabel": "Exercised, weighted-average exercise price (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.",
        "label": "Forfeited, weighted-average exercise price (in dollars per share)",
        "terseLabel": "Forfeited, weighted-average exercise price (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.",
        "label": "Granted, weighted-average exercise price (in dollars per share)",
        "terseLabel": "Granted, weighted-average exercise price (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock": {
     "auth_ref": [
      "r356"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for outstanding performance shares.",
        "label": "Share-based Payment Arrangement, Performance Shares, Outstanding Activity [Table Text Block]",
        "terseLabel": "Summary of performance share units activity"
       }
      }
     },
     "localname": "ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Intrinsic value of outstanding award under share-based payment arrangement. Excludes share and unit options.",
        "label": "Aggregate Intrinsic Value, PSU",
        "periodEndLabel": "Aggregate Intrinsic Value, PSU",
        "periodStartLabel": "Aggregate Intrinsic Value, PSU"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "auth_ref": [
      "r375",
      "r389"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Expected option life (years) (Year)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": {
     "auth_ref": [
      "r383"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.",
        "label": "Exercisable, aggregate intrinsic value",
        "terseLabel": "Exercisable, aggregate intrinsic value"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [
      "r383"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Exercisable, weighted-average remaining contractual life (Year)",
        "terseLabel": "Exercisable, weighted-average remaining contractual life (Year)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of non-vested options outstanding.",
        "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares",
        "periodEndLabel": "Stock Options Outstanding (in shares)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of non-vested options forfeited.",
        "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares",
        "negatedLabel": "Forfeited (in shares)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average grant-date fair value of non-vested options forfeited.",
        "label": "Forfeited, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average grant-date fair value of non-vested options outstanding.",
        "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue",
        "periodEndLabel": "Weighted- Average Grant-Date Fair Value per Share (in dollars per share)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "auth_ref": [
      "r372"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Weighted-Average Remaining Contractual Life (Year)",
        "terseLabel": "Weighted-Average Remaining Contractual Life (Year)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [
      "r372"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. 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.",
        "label": "Vested or expected to vest, weighted-average remaining contractual life (Year)",
        "terseLabel": "Vested or expected to vest, weighted-average remaining contractual life (Year)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails",
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1": {
     "auth_ref": [
      "r356"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock.",
        "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of options vested.",
        "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares",
        "terseLabel": "Vested (in shares)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average grant-date fair value of options vested.",
        "label": "Vested, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_SharesIssuedPricePerShare": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Per share or per unit amount of equity securities issued.",
        "label": "Shares Issued, Price Per Share",
        "terseLabel": "Shares Issued, Price Per Share (in dollars per share)"
       }
      }
     },
     "localname": "SharesIssuedPricePerShare",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShortTermLeaseCost": {
     "auth_ref": [
      "r497",
      "r504"
     ],
     "calculation": {
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less.",
        "label": "Short-term lease cost",
        "terseLabel": "Short-term lease cost"
       }
      }
     },
     "localname": "ShortTermLeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "auth_ref": [
      "r104",
      "r114"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.",
        "label": "Significant Accounting Policies [Text Block]",
        "terseLabel": "Basis of Presentation"
       }
      }
     },
     "localname": "SignificantAccountingPoliciesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureBasisOfPresentation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit": {
     "auth_ref": [
      "r402"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of the unrecognized tax benefit of a position taken for which it is reasonably possible that the total amount thereof will significantly increase or decrease within twelve months of the balance sheet date.",
        "label": "us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit",
        "terseLabel": "Significant Change in Unrecognized Tax Benefits is Reasonably Possible, Amount of Unrecorded Benefit"
       }
      }
     },
     "localname": "SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StatementClassOfStockAxis": {
     "auth_ref": [
      "r17",
      "r18",
      "r19",
      "r106",
      "r109",
      "r132",
      "r136",
      "r137",
      "r139",
      "r141",
      "r149",
      "r150",
      "r151",
      "r188",
      "r242",
      "r246",
      "r247",
      "r248",
      "r251",
      "r252",
      "r289",
      "r290",
      "r294",
      "r298",
      "r305",
      "r473",
      "r591"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by the different classes of stock of the entity.",
        "label": "Class of Stock [Axis]"
       }
      }
     },
     "localname": "StatementClassOfStockAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "auth_ref": [
      "r0",
      "r46",
      "r66",
      "r67",
      "r68",
      "r115",
      "r116",
      "r117",
      "r119",
      "r127",
      "r129",
      "r148",
      "r189",
      "r305",
      "r312",
      "r385",
      "r386",
      "r387",
      "r410",
      "r411",
      "r461",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r483",
      "r560",
      "r561",
      "r562",
      "r594"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by component of equity.",
        "label": "Equity Components [Axis]"
       }
      }
     },
     "localname": "StatementEquityComponentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Statement [Line Items]"
       }
      }
     },
     "localname": "StatementLineItems",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS"
       }
      }
     },
     "localname": "StatementOfCashFlowsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED BALANCE SHEETS"
       }
      }
     },
     "localname": "StatementOfFinancialPositionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME"
       }
      }
     },
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY"
       }
      }
     },
     "localname": "StatementOfStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementTable": {
     "auth_ref": [
      "r115",
      "r116",
      "r117",
      "r148",
      "r520"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.",
        "label": "Statement [Table]"
       }
      }
     },
     "localname": "StatementTable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesNewIssues": {
     "auth_ref": [
      "r18",
      "r19",
      "r305",
      "r312"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of new stock issued during the period.",
        "label": "Issuance of common shares (in shares)",
        "terseLabel": "Stock issued during period, shares, new issues (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesNewIssues",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "auth_ref": [
      "r18",
      "r19",
      "r305",
      "r312",
      "r362"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of share options (or share units) exercised during the current period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "negatedLabel": "Exercised, shares (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "auth_ref": [
      "r46",
      "r305",
      "r312"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of stock issued as a result of the exercise of stock options.",
        "label": "Stock options and share units exercised"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares authorized to be repurchased by an entity's Board of Directors under a stock repurchase plan.",
        "label": "Stock Repurchase Program, Number of Shares Authorized to be Repurchased",
        "terseLabel": "Number of shares to be purchased for cancellation"
       }
      }
     },
     "localname": "StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockholdersEquity": {
     "auth_ref": [
      "r19",
      "r24",
      "r25",
      "r109",
      "r186",
      "r188",
      "r473",
      "r508"
     ],
     "calculation": {
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.",
        "label": "Stockholders' Equity Attributable to Parent",
        "periodEndLabel": "Balance, end of period",
        "periodStartLabel": "Balance, beginning of period",
        "totalLabel": "Stockholders' Equity Attributable to Parent, Ending Balance"
       }
      }
     },
     "localname": "StockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "SHAREHOLDERS' EQUITY (Note 15)",
        "terseLabel": "SHAREHOLDERS' EQUITY (Note 15)"
       }
      }
     },
     "localname": "StockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "auth_ref": [
      "r107",
      "r290",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r304",
      "r312",
      "r313"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.",
        "label": "Stockholders' Equity Note Disclosure [Text Block]",
        "terseLabel": "Share Capital"
       }
      }
     },
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapital"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SubsidiarySaleOfStockAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of sale of the entity's stock.",
        "label": "Sale of Stock [Axis]"
       }
      }
     },
     "localname": "SubsidiarySaleOfStockAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureShareCapitalDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SupplementalCashFlowElementsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information"
       }
      }
     },
     "localname": "SupplementalCashFlowElementsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental disclosure of cash flow information:"
       }
      }
     },
     "localname": "SupplementalCashFlowInformationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TradeNamesMember": {
     "auth_ref": [
      "r435"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof.",
        "label": "Trade names"
       }
      }
     },
     "localname": "TradeNamesMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails",
      "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails",
      "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_UnbilledReceivablesCurrent": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer.",
        "label": "Unbilled Receivables, Current",
        "terseLabel": "Unbilled Receivables, Current"
       }
      }
     },
     "localname": "UnbilledReceivablesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UndistributedEarningsOfForeignSubsidiaries": {
     "auth_ref": [
      "r396",
      "r421",
      "r540",
      "r566"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of undistributed earnings of foreign subsidiaries intended to be permanently reinvested outside the country of domicile.",
        "label": "Undistributed Earnings of Foreign Subsidiaries",
        "terseLabel": "Undistributed Earnings of Foreign Subsidiaries"
       }
      }
     },
     "localname": "UndistributedEarningsOfForeignSubsidiaries",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": {
     "auth_ref": [
      "r403"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate.",
        "label": "Unrecognized Tax Benefits that Would Impact Effective Tax Rate",
        "terseLabel": "Unrecognized Tax Benefits that Would Impact Effective Tax Rate"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_VariableRateAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of variable rate.",
        "label": "Variable Rate [Axis]"
       }
      }
     },
     "localname": "VariableRateAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_VariableRateDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index.",
        "label": "Variable Rate [Domain]"
       }
      }
     },
     "localname": "VariableRateDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "auth_ref": [
      "r131",
      "r141"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.",
        "label": "Diluted.",
        "terseLabel": "Weighted average common and common equivalent shares outstanding (in shares)",
        "verboseLabel": "Weighted Average Share Outstanding (Diluted)"
       }
      }
     },
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "auth_ref": [
      "r130",
      "r141"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.",
        "label": "Basic",
        "terseLabel": "Weighted average shares outstanding (in shares)",
        "verboseLabel": "Weighted Average Share Outstanding (Basic)"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails",
      "http://www.descartes.com/role/StatementCondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "sharesItemType"
    }
   },
   "unitCount": 6
  }
 },
 "std_ref": {
  "r0": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "105",
   "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695"
  },
  "r1": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "205",
   "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760"
  },
  "r10": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e7018-107765"
  },
  "r100": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3044-108585"
  },
  "r101": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4297-108586"
  },
  "r102": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=SL98516268-108586"
  },
  "r103": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "230",
   "URI": "http://asc.fasb.org/topic&trid=2134446"
  },
  "r104": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18726-107790"
  },
  "r105": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(c))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r106": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(d))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r107": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(e)(1))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r108": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(f))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r109": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r11": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(13))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r110": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r111": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r112": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r113": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-04(a))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24072-122690"
  },
  "r114": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "235",
   "URI": "http://asc.fasb.org/topic&trid=2122369"
  },
  "r115": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793"
  },
  "r116": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793"
  },
  "r117": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793"
  },
  "r118": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
  },
  "r119": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(3)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
  },
  "r12": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(14))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r120": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(4)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
  },
  "r121": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
  },
  "r122": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794"
  },
  "r123": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794"
  },
  "r124": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794"
  },
  "r125": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794"
  },
  "r126": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794"
  },
  "r127": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794"
  },
  "r128": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794"
  },
  "r129": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794"
  },
  "r13": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(19))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r130": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1448-109256"
  },
  "r131": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1505-109256"
  },
  "r132": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1252-109256"
  },
  "r133": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1707-109256"
  },
  "r134": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1757-109256"
  },
  "r135": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1500-109256"
  },
  "r136": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1278-109256"
  },
  "r137": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "55",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2626-109256"
  },
  "r138": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256"
  },
  "r139": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256"
  },
  "r14": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(20))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r140": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1337-109256"
  },
  "r141": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257"
  },
  "r142": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257"
  },
  "r143": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257"
  },
  "r144": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537"
  },
  "r145": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e3842-109258"
  },
  "r146": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "52",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e4984-109258"
  },
  "r147": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "260",
   "URI": "http://asc.fasb.org/topic&trid=2144383"
  },
  "r148": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "http://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054"
  },
  "r149": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "http://asc.fasb.org/extlink&oid=125520817&loc=d3e70229-108054"
  },
  "r15": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(22))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r150": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "http://asc.fasb.org/extlink&oid=6373374&loc=d3e70434-108055"
  },
  "r151": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "272",
   "URI": "http://asc.fasb.org/extlink&oid=6373374&loc=d3e70478-108055"
  },
  "r152": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "275",
   "URI": "http://asc.fasb.org/topic&trid=2134479"
  },
  "r153": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8657-108599"
  },
  "r154": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8672-108599"
  },
  "r155": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8721-108599"
  },
  "r156": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8721-108599"
  },
  "r157": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r158": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r159": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r16": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(24))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r160": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r161": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r162": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599"
  },
  "r163": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "26",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8844-108599"
  },
  "r164": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r165": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r166": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r167": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r168": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r169": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8924-108599"
  },
  "r17": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(27))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r170": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r171": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r172": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r173": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r174": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r175": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r176": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "34",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8981-108599"
  },
  "r177": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9031-108599"
  },
  "r178": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599"
  },
  "r179": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599"
  },
  "r18": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r180": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599"
  },
  "r181": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "42",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9054-108599"
  },
  "r182": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "280",
   "URI": "http://asc.fasb.org/topic&trid=2134510"
  },
  "r183": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522"
  },
  "r184": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522"
  },
  "r185": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524"
  },
  "r186": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 4.E)",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707"
  },
  "r187": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/subtopic&trid=2196772"
  },
  "r188": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "323",
   "URI": "http://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571"
  },
  "r189": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r19": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r190": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446"
  },
  "r191": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
  },
  "r192": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
  },
  "r193": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
  },
  "r194": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "330",
   "URI": "http://asc.fasb.org/topic&trid=2126998"
  },
  "r195": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "340",
   "URI": "http://asc.fasb.org/extlink&oid=123353750&loc=SL49131252-203054"
  },
  "r196": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(b)",
   "Topic": "340",
   "URI": "http://asc.fasb.org/extlink&oid=123353750&loc=SL49131252-203054"
  },
  "r197": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266"
  },
  "r198": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=120320667&loc=SL49117168-202975"
  },
  "r199": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r2": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "205",
   "URI": "http://asc.fasb.org/topic&trid=2122149"
  },
  "r20": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r200": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r201": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r202": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r203": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267"
  },
  "r204": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/subtopic&trid=2144439"
  },
  "r205": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274"
  },
  "r206": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274"
  },
  "r207": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r208": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r209": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "((a)(1),(b))",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r21": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r210": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r211": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r212": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(2)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r213": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r214": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r215": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "350",
   "URI": "http://asc.fasb.org/topic&trid=2144416"
  },
  "r216": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r217": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r218": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r219": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r22": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r220": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230"
  },
  "r221": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "360",
   "URI": "http://asc.fasb.org/topic&trid=2155823"
  },
  "r222": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=109237686&loc=d3e17752-110868"
  },
  "r223": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
  },
  "r224": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
  },
  "r225": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.3)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140864-122747"
  },
  "r226": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(b)(1))",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747"
  },
  "r227": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(b)(2))",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747"
  },
  "r228": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "440",
   "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308"
  },
  "r229": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "440",
   "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308"
  },
  "r23": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(4))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r230": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "440",
   "URI": "http://asc.fasb.org/topic&trid=2144648"
  },
  "r231": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14326-108349"
  },
  "r232": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14615-108349"
  },
  "r233": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14394-108349"
  },
  "r234": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349"
  },
  "r235": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14453-108349"
  },
  "r236": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14472-108349"
  },
  "r237": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349"
  },
  "r238": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "450",
   "URI": "http://asc.fasb.org/topic&trid=2127136"
  },
  "r239": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=124440162&loc=d3e12021-110248"
  },
  "r24": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r240": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=124440162&loc=d3e12053-110248"
  },
  "r241": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "460",
   "URI": "http://asc.fasb.org/topic&trid=2155896"
  },
  "r242": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r243": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r244": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r245": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r246": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r247": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r248": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r249": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r25": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(31))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r250": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r251": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r252": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r253": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r254": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r255": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r256": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r257": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r258": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r259": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r26": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(32))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r260": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r261": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(i)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r262": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r263": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611"
  },
  "r264": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611"
  },
  "r265": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611"
  },
  "r266": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611"
  },
  "r267": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611"
  },
  "r268": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611"
  },
  "r269": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611"
  },
  "r27": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(4)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r270": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611"
  },
  "r271": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611"
  },
  "r272": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611"
  },
  "r273": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611"
  },
  "r274": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611"
  },
  "r275": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611"
  },
  "r276": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611"
  },
  "r277": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611"
  },
  "r278": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611"
  },
  "r279": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611"
  },
  "r28": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(5))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r280": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611"
  },
  "r281": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69B",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495735-112612"
  },
  "r282": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69C",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495737-112612"
  },
  "r283": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69E",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495743-112612"
  },
  "r284": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69F",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495745-112612"
  },
  "r285": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "470",
   "URI": "http://asc.fasb.org/topic&trid=2208564"
  },
  "r286": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(CFRR 211.02)",
   "Topic": "480",
   "URI": "http://asc.fasb.org/extlink&oid=122040564&loc=d3e177068-122764"
  },
  "r287": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=65888546&loc=d3e21300-112643"
  },
  "r288": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21553-112644"
  },
  "r289": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r29": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(7))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r290": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r291": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r292": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r293": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r294": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r295": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r296": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r297": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644"
  },
  "r298": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644"
  },
  "r299": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644"
  },
  "r3": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r30": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(8))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r300": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496180-112644"
  },
  "r301": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644"
  },
  "r302": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644"
  },
  "r303": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644"
  },
  "r304": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644"
  },
  "r305": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21463-112644"
  },
  "r306": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21475-112644"
  },
  "r307": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21484-112644"
  },
  "r308": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21488-112644"
  },
  "r309": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21506-112644"
  },
  "r31": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.1)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r310": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21521-112644"
  },
  "r311": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21538-112644"
  },
  "r312": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770"
  },
  "r313": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "505",
   "URI": "http://asc.fasb.org/topic&trid=2208762"
  },
  "r314": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130531-203044"
  },
  "r315": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130532-203044"
  },
  "r316": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130533-203044"
  },
  "r317": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045"
  },
  "r318": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045"
  },
  "r319": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045"
  },
  "r32": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.13)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r320": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045"
  },
  "r321": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045"
  },
  "r322": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045"
  },
  "r323": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045"
  },
  "r324": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045"
  },
  "r325": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045"
  },
  "r326": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045"
  },
  "r327": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045"
  },
  "r328": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130558-203045"
  },
  "r329": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130543-203045"
  },
  "r33": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.14)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r330": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130545-203045"
  },
  "r331": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130549-203045"
  },
  "r332": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130549-203045"
  },
  "r333": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130550-203045"
  },
  "r334": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046"
  },
  "r335": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046"
  },
  "r336": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "606",
   "URI": "http://asc.fasb.org/topic&trid=49130388"
  },
  "r337": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "610",
   "URI": "http://asc.fasb.org/topic&trid=49130413"
  },
  "r338": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(i)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r339": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(ii)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r34": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.17)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r340": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(01)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r341": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r342": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(A)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r343": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(B)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r344": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(C)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r345": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(03)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r346": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123450688&loc=d3e4179-114921"
  },
  "r347": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947"
  },
  "r348": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(d)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947"
  },
  "r349": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947"
  },
  "r35": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r350": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "80",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948"
  },
  "r351": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=123468992&loc=d3e4534-113899"
  },
  "r352": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
  },
  "r353": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
  },
  "r354": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
  },
  "r355": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a),(g)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r356": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r357": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r358": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r359": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)-(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r36": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a),20,24)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r360": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r361": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r362": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r363": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(3)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r364": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r365": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(i)-(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r366": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r367": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r368": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r369": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r37": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(b),22(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r370": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r371": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r372": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r373": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r374": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r375": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r376": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r377": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r378": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iv)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r379": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r38": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19-26)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r380": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r381": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r382": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r383": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r384": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=SL79508275-113901"
  },
  "r385": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r386": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r387": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r388": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(g)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r389": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.D.2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809"
  },
  "r39": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.20)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r390": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.F)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809"
  },
  "r391": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=122142933&loc=d3e11149-113907"
  },
  "r392": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=122142933&loc=d3e11178-113907"
  },
  "r393": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "718",
   "URI": "http://asc.fasb.org/topic&trid=2228938"
  },
  "r394": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "720",
   "URI": "http://asc.fasb.org/topic&trid=2122503"
  },
  "r395": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "730",
   "URI": "http://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373"
  },
  "r396": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123452999&loc=d3e28200-109314"
  },
  "r397": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31917-109318"
  },
  "r398": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318"
  },
  "r399": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319"
  },
  "r4": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r40": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.21)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r400": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319"
  },
  "r401": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319"
  },
  "r402": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319"
  },
  "r403": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319"
  },
  "r404": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319"
  },
  "r405": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319"
  },
  "r406": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32621-109319"
  },
  "r407": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32632-109319"
  },
  "r408": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
  },
  "r409": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
  },
  "r41": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.22)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r410": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277"
  },
  "r411": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(3)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277"
  },
  "r412": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.5.Q1)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r413": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.7)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r414": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r415": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.1)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r416": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.2)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r417": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.C)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817"
  },
  "r418": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324"
  },
  "r419": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "270",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338"
  },
  "r42": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.24)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r420": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331"
  },
  "r421": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331"
  },
  "r422": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "740",
   "URI": "http://asc.fasb.org/topic&trid=2144680"
  },
  "r423": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123586518&loc=d3e961-128460"
  },
  "r424": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123586518&loc=d3e1043-128460"
  },
  "r425": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463"
  },
  "r426": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(2)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463"
  },
  "r427": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(3)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463"
  },
  "r428": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463"
  },
  "r429": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463"
  },
  "r43": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.25)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r430": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "37",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123455525&loc=d3e2207-128464"
  },
  "r431": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123413009&loc=d3e4845-128472"
  },
  "r432": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123413009&loc=d3e4845-128472"
  },
  "r433": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123413009&loc=d3e4845-128472"
  },
  "r434": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123413009&loc=d3e4845-128472"
  },
  "r435": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473"
  },
  "r436": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473"
  },
  "r437": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5333-128473"
  },
  "r438": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "38",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5504-128473"
  },
  "r439": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6911189&loc=d3e6405-128476"
  },
  "r44": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.28,29)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r440": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6911189&loc=d3e6408-128476"
  },
  "r441": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6578-128477"
  },
  "r442": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6613-128477"
  },
  "r443": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=116859824&loc=d3e6819-128478"
  },
  "r444": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r445": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)(3)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r446": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)(4)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r447": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)(1)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r448": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)(3)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r449": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e7008-128479"
  },
  "r45": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r450": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "805",
   "URI": "http://asc.fasb.org/topic&trid=2303972"
  },
  "r451": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=123454820&loc=SL4569616-111683"
  },
  "r452": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=123454820&loc=SL4569643-111683"
  },
  "r453": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988"
  },
  "r454": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988"
  },
  "r455": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(3)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684"
  },
  "r456": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c),(3)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684"
  },
  "r457": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bb)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685"
  },
  "r458": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685"
  },
  "r459": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=d3e41620-113959"
  },
  "r46": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r460": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624181-113959"
  },
  "r461": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(3)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r462": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(4)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r463": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r464": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r465": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bbb)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r466": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bbb)(2)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r467": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r468": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r469": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r47": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.3,4)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r470": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258"
  },
  "r471": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19279-110258"
  },
  "r472": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13433-108611"
  },
  "r473": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612"
  },
  "r474": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=125521441&loc=d3e30755-110894"
  },
  "r475": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906"
  },
  "r476": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900"
  },
  "r477": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r478": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r479": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r48": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r480": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r481": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r482": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32262-110900"
  },
  "r483": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901"
  },
  "r484": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=6450988&loc=d3e26243-108391"
  },
  "r485": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=124435984&loc=d3e28541-108399"
  },
  "r486": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=124435984&loc=d3e28551-108399"
  },
  "r487": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=124435984&loc=d3e28555-108399"
  },
  "r488": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=124429444&loc=SL124452920-239629"
  },
  "r489": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=114775985&loc=d3e28878-108400"
  },
  "r49": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.8)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r490": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977"
  },
  "r491": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977"
  },
  "r492": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977"
  },
  "r493": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(1)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980"
  },
  "r494": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(3)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980"
  },
  "r495": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980"
  },
  "r496": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
  },
  "r497": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
  },
  "r498": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(1)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
  },
  "r499": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(2)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
  },
  "r5": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r50": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.9)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r500": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(3)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
  },
  "r501": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(4)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
  },
  "r502": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
  },
  "r503": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918701-209980"
  },
  "r504": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "53",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123414884&loc=SL77918982-209971"
  },
  "r505": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/subtopic&trid=77888251"
  },
  "r506": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "852",
   "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765"
  },
  "r507": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "852",
   "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765"
  },
  "r508": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "852",
   "URI": "http://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766"
  },
  "r509": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(1)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r51": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312"
  },
  "r510": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r511": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r512": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(1)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r513": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r514": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719"
  },
  "r515": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719"
  },
  "r516": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719"
  },
  "r517": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "860",
   "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719"
  },
  "r518": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "910",
   "URI": "http://asc.fasb.org/extlink&oid=123353855&loc=SL119991595-234733"
  },
  "r519": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "730",
   "Topic": "912",
   "URI": "http://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433"
  },
  "r52": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226008-175313"
  },
  "r520": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.L)",
   "Topic": "924",
   "URI": "http://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856"
  },
  "r521": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "926",
   "URI": "http://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959"
  },
  "r522": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "340",
   "Topic": "928",
   "URI": "http://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004"
  },
  "r523": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "20",
   "Topic": "940",
   "URI": "http://asc.fasb.org/extlink&oid=123384075&loc=d3e41242-110953"
  },
  "r524": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r525": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(11))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r526": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(13))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r527": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(15)(1))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r528": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(16))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r529": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(23))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r53": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226052-175313"
  },
  "r530": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.17)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r531": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(15))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r532": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(22))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r533": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(23))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r534": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(26))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r535": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(27))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r536": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04.9)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r537": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "235",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884"
  },
  "r538": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630"
  },
  "r539": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "470",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=123599511&loc=d3e64711-112823"
  },
  "r54": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669646-108580"
  },
  "r540": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "740",
   "Subparagraph": "(b)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6479915&loc=d3e66715-112838"
  },
  "r541": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(16))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r542": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r543": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(15)(b)(1))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r544": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r545": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r546": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r547": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r548": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.(a),19)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r549": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(18))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r55": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669646-108580"
  },
  "r550": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(19))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r551": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(22))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r552": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(23))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r553": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(8))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r554": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(9))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r555": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4H",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438"
  },
  "r556": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439"
  },
  "r557": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441"
  },
  "r558": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(b)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441"
  },
  "r559": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117819544-158441"
  },
  "r56": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e637-108580"
  },
  "r560": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r561": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(1)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r562": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(2)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r563": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(i)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r564": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(ii)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r565": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(2)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r566": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "740",
   "Subparagraph": "(b)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6487024&loc=d3e29054-158556"
  },
  "r567": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "310",
   "Subparagraph": "(SX 210.12-29(Footnote 4))",
   "Topic": "948",
   "URI": "http://asc.fasb.org/extlink&oid=120402547&loc=d3e617274-123014"
  },
  "r568": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "440",
   "Subparagraph": "(a)",
   "Topic": "954",
   "URI": "http://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629"
  },
  "r569": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Subparagraph": "(d)",
   "Topic": "958",
   "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99779-112916"
  },
  "r57": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e640-108580"
  },
  "r570": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99893-112916"
  },
  "r571": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=SL120174063-112916"
  },
  "r572": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r573": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r574": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r575": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r576": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r577": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r578": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r579": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r58": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e681-108580"
  },
  "r580": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Footnote 2))",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024"
  },
  "r581": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(c)",
   "Topic": "976",
   "URI": "http://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663"
  },
  "r582": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(b)",
   "Topic": "978",
   "URI": "http://asc.fasb.org/extlink&oid=123360121&loc=d3e27327-108691"
  },
  "r583": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "985",
   "URI": "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756"
  },
  "r584": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12"
  },
  "r585": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b"
  },
  "r586": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r587": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r588": {
   "Name": "Form 10-K",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "310"
  },
  "r589": {
   "Name": "Form 20-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "220",
   "Subsection": "f"
  },
  "r59": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669686-108580"
  },
  "r590": {
   "Name": "Form 40-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "240",
   "Subsection": "f"
  },
  "r591": {
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Paragraph": "(a)",
   "Publisher": "SEC",
   "Section": "1402"
  },
  "r592": {
   "Name": "Regulation S-T",
   "Number": "232",
   "Publisher": "SEC",
   "Section": "405"
  },
  "r593": {
   "Name": "Securities Act",
   "Number": "230",
   "Publisher": "SEC",
   "Section": "405"
  },
  "r594": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Topic": "848"
  },
  "r6": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r60": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580"
  },
  "r61": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580"
  },
  "r62": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580"
  },
  "r63": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669625-108580"
  },
  "r64": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669625-108580"
  },
  "r65": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e557-108580"
  },
  "r66": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067"
  },
  "r67": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067"
  },
  "r68": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067"
  },
  "r69": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124507222&loc=d3e1436-108581"
  },
  "r7": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6801-107765"
  },
  "r70": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(210.5-03(11))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r71": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(10))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r72": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(20))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r73": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(21))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r74": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(24))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r75": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(25))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r76": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(4))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r77": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(5))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r78": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r79": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1,2)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r8": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6911-107765"
  },
  "r80": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.2(a),(d))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r81": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.3)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r82": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.4)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r83": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.7(a),(b))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r84": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.8)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r85": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3179-108585"
  },
  "r86": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585"
  },
  "r87": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585"
  },
  "r88": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585"
  },
  "r89": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585"
  },
  "r9": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6935-107765"
  },
  "r90": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585"
  },
  "r91": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585"
  },
  "r92": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585"
  },
  "r93": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3367-108585"
  },
  "r94": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3521-108585"
  },
  "r95": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585"
  },
  "r96": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585"
  },
  "r97": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585"
  },
  "r98": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585"
  },
  "r99": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585"
  }
 },
 "version": "2.1"
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>111
<FILENAME>0001104659-22-098285-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001104659-22-098285-xbrl.zip
M4$L#!!0    ( ).-)U4:W5,:5Q<   \2 0 1    9'-G>"TR,#(R,#<S,2YX
M<V3M75ESXSB2?M^(_0]<OVQOQ,BRY"I7V]$U$[(M5RG6MC26JH^G"8J$)&Q3
MI!H@;;E__6:"AT@1! ^I;/8$7JHL(I'(Q)>X$XF?_K%=.\8S89QZ[N>3WNG9
MB4%<R[.IN_Q\$O".R2U*3_[Q]__\CY_^J]/Y]?KIWK ]*U@3US<L1DR?V,8+
M]5?&S-ML3-=X((Q1QS&N&;67Q# N3R].?^Q=?#KM]S]]^&!T.A&G:Y-#3L\U
M!,O^:2])N8FX>NZ5<=G]U.V?]?O&CU?]BZN/Y\;D(:%[ "$7M(QPR^TK;JW(
MVC1\DRV)_VBN"=^8%OE\LO+]S56W^_+R<FH3;IG,)_S4\M:"T]FG\]Z)8?H^
MH_/ )W<>6]^2A1DX/M2+^T=@.J)TJ"Z'8&UD"%+)4+\NOP(Q,N6]G)]Z; D%
MG?6ZOS[<3X6$,;'-E]M*TD7D9,.(A766R;2=,R<NY+++/(=T=Y1Q7D 84WB2
M<V'RN<@5IV!QO<Y9K[,KT H8 R-Y33*)HCBQ3I?><S=.%1GC+(PL"H6[Z$)J
M4E&08/M9SA'=QVZ8F) ZA2S/N[_>4_?WE);^ZZ9 2Y$BT9(SOZANDB1)ML!G
M"A@@-274TC0W4IDP0<+; 9T4.F/R'-I5H@&UY!!!0@8=U*>@@I(D60WY&U90
M *1D2B!NL.[+4.V?=<G6)RZG<X=TD(PPTX?.B'?ZV!E%%N<%KL^*#"Y,S)3G
M$K^L,0#)K@51.6M($&S_^) P-JG%Y<0B*2/%-@=8U.Y[EY>779&:B."S/0@R
M8D-R%Y-%C2$*:5675=I^1)8 LK56<C4P):-%A3XP[N1H>2?7H2[W3=<BZ19/
M%5:]3P\6*373M(%"SV\8HN\W7=?SA4&);_'7S8:Z"R_Z!!\1BBNLIQE4LH%_
M?'L:*?I@4:538"SZ_AO/M<&$B0U_<,^A-M;TM>F@V-,5(3X_,2@@5"=#(ELL
MG4T6U*5"$ZC0LS.C8R3\X.^;\>/M\'$ZO,6_IN/[T>U@!C^N!_>#QYNA,?TZ
M',ZF/W7W6>V7$H!08_?OXF\8+#@P%[6'W6F4.R)1Y;1,QPJ<!AEWDA7GB[[&
M:'U7$)-4/EZ,-W'75 7-@IQJ6/M589W.X+^'X>-L:HSOC/%D^#28C8!  WP
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
MCS:.>N=;BO5SED()9%\RG]Q[.U<#<_"A5T$/7"F3&C[)=+/"\[8:TX8G805
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
MV&"S8=!]V&FW ^EU^QIYVJCRHT7SAS3IC^\L=!@E/HS;_/?_!U!+ P04
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
M#X0(TS>8Z'+8"Z__;?*U)HWDOXP$P'X4>L:L%;K6_4C%-8>1-^QF)_X E"L
M#YF^J"#ZE(=36<3Q*)I3W43I3UO[CR-?1+[A=R]:<B&HGXY/C[M:6]M7PG[X
M!6K;BK1]T;MWD=JT?X;U_0MX+.J!/Y1>U;S8LL@S7S*\)?2&>(_NPK/2S2R
MI5(&/#L@0V1L4OQFN("725(X_$L!5=4ZFJD!A*OCJ_!TP=[T)C]MKV;(S]*&
MW"^PEL8Z*8I"4YV7H;JY5^QSVGDM%W]WFXW0U2]D%=.1FDH5(SI\7(Q@>8.U
M]G="O^_7PO?GPB(V@F_(^B&"#LXZU_"&DNK*YZ$A@S"RV_#/:.2GFJ&]2!O:
M;:&:;IO:KMC:6%MA2&SZ8JK\I%5%HV0WR1_UQ:$H.9G@]%@9:A+A):JXP,8G
MQCX:L%\K9W];*#SL&]WP4@V3/U3Q]566=Y6 0GCD.YK[Y!ZHFJF_3)OZ?8%:
M4&)MK/PMMIG*W.$GOFH6ETK:SA<EKL0@Y#0JHLI1E15T??6"X'1R.1JCW?Q
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
M>PW*N?8#"G\9VTAUA-.+0#$\7P0&PP)<##<<-222._/AUHO=1^M?A H35[)
M:O2,"5JI)TC2'(#D)T;ILJK9NYQ$\MX#+KDZ@D":$BB]*"L P!=JY8F[7[9&
M'N\''L"7+,3"[S&)4K\/ .C'3!PP#6KV2QK8CYD8WR#"7"0FT8&=%L-]5RYD
MF2X ]7YRMY)7K0G2%RPO=HI3?X4>,7&,>@ D@=(NJ-"CC 1 ;(4J3"5U")!>
M( :3\:5C- G )37_8E%'L7BDWQ*'=/;;@.8QKW]1J&LUIY3K,G%-_V)W:'-O
M[40-"@[] 07/X6Q3GHJZG"(QRCN98L U*I<=T@LQT\LW X<P^SN9'\AIZXD3
M8+&\]1S\@IW0<B6K6MLFIJ"BS<#(_(Z#]0-RHZNB:[Q](AI_;<W>*@*4]1YP
MJ>D92IJ2(KV:I%/Q555Y"HA;H?.OT(\*.=\0^@E]B5.FL+=BN[O'_K0C!2';
M*NOTW<=V*_4=CD!<]QUNP4AM)5V39&E)FPRY5=7B'3%"-K,559E'+"KI^ !7
M3E1=9W_G)"FN)EDG!BUCRFE;@D-5N@49M=6C"V![,6$9J89L>E5HAN=KH&18
M@(LAE2%\ZVU#53RRK%E,*G4S6!A*%T!Y0PV6 $2_E$>D HYIH5<-S"5>-R!
M<9?;4^)7?QX&:T+QW\CY[#%(Q6V5A8!>U)V^V%V_(FKC^'DRE:NXPQFTUG?#
M&4;)DB(R%3PBK<S0G"7J&8:\W]"A$"N]*FTR)'.KHGUDU*Z9AD@ 5)G[DO,Q
M4M+[<?I&F5-CL1$DW#1'8W4S)7X EG()9X@Q=L5C<'[0PPE8-A@0I^/^</YH
M(\^BF.CR361M\KDFV38](Q//_=GSM\@6SUG+=\"R=@E2ZG80$DZD["#FZ$ES
M3M*#"KVN'FP4VID[^HTT=+ZA4HL=&D+#TU!;*V,O^J:@M':!6U+-;11E4@\N
MU^#]AHZJ.WJMURCG418^DGU+7+O9;P 0D(>&Y%_S2  06CFQ21D*F9!->@CA
M5<YW!2B XB&JT Y"BKT5KP0S]QSV&Z(OTKMD9JV32UMEK8<.L&0 E MP6;M,
MJ$7:;LC;:H;L(N:(9FZTZ8<_!%:DPT)?#-S:+5L"^38RP3^T 8285-A+6JF0
M@R;H!:804]24PIT,*:YNJH8"*-![0X%?D@MVA\)7.L-1US9O0,K;#H=P#AYY
M?J&N39)H*&\#P9#4LH>8H2<U)F4#B[1$^8  Q?U7Y*SX#H-\O/)4@7%]HYA
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
MGRRZ0D'^@-CQ7$ =ME)1Z9@4(]8]=]AZ%D4!&RN8U$A ?<@M:9$4HF-@?(H
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
ME7@BFTQ6EJOYK>EU!=?QCCAJ^Y*BIBWPZ&I4\60A<=P0<+0URZL\OU[]M'A
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
MYG4B Q[+U+3I_VY'-FE&9P^+R^7/BX=?WV6U<D_+A(YY/I*_4"(PCL"4K9V
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
MU(U3#J_N5 #'4@]E5 ,G8XG*$42O/#"N-);*?-%OE#-BK$^>.=:3KF\KG6#
M1C#!96[;M!(R?;>78*XM\3A14P?@8-&N;.6A(&%KP,$O(;1RD-?%LLE$F+OU
MW8UKTT)1)UJWC872G8&[=#<C5+)@4CT!NWI'!91S8 4;5/!!&2, @]E(AH 6
M_]GH>1GLUV11D([A<UKENE3)J64XZTP$.!ZH&:5N+BQ' 3 ^*"JBH7H8A-5B
M2>NK/'$ONT)L[3R]*&@P0HOWU_2<EM<W*=![Q5?B@PI& $;%D0P!).RO+3?\
MV?(27.C8MI)KZ0(\Q&44+@=V4WO X2PEMG)9(T(<,>KH,[8H;=,E*>K4;1NT
MVOI,T)$;AZC&#A-S97TX7/+E$GT X]!H:@,)X0=L8_?)6GNM U!]2^#AVJ!>
MM:S323/ H=DDK:IGKD++P5G&)$(%"X.^>1M8?D0K5D1,.K(<9(]0EM277RNI
MT@+NW[U,5(X )4* 8Z2?/JI1Q+C21YQC6H2<QQ3=6../IY:8PUI\F3&65L@1
MO",KUD,PVLGW HH,'=7.WYUM[P+]'=H.&JBZ;&,<9UQ&?G36A-HG*FH,4=%(
MWMIX2@%9.Q8WMYQ:^&D<*'88$<[T7:32J79Z%I/7Z P;''/<V-.G\RG2F)LF
MC*VJT?/?3\33@O"U=:(@UP,H)G50MWHT7-@<\%) 1FKE4HP9;5@^V[8:;NDR
M/:]M7-LVM9^6W^H#W9PXK)7H.#J;K01<_V)BRS CTP]XV$JK?E0)N+D3X "6
ME[W'HQ'%PYC"YT$AN+?\V-21Q%2=7G+LZM)_BJ$P!,X?/9Y;#0Y8XYT1NX!!
MBQL_)IJX9,W'SOG1%QT7+VG-B$]!X#R[GM>Z_.I$ CA:J!CDZ&ZY='_ :*&D
MAOJL,&.&.#=  =%E12?3<V+N+[V^:^TV(6<?9N5SY..P1D$C)M"XA9%ADMSN
M8F-KH!$JJ6:^BR%N"GT;0T)R51?,2%>"+Z,^3.@)=RY&4-/@.'JJ7=OXV=P#
M:%1V4+<\7C8T!SQ.RDBM-3*-#XMC:&SV,GN88"=[5X:^"IR$87LJ5*8?\("5
M5OWHAGMS)\#!*R^[^LT>Q@&56)@OU!#=6Z]T2YO>9#RQ@/S@I$X-?AST,5--
M_8>NI&#'3"^->D02/Y&9,F;IPIKP@C58&K06(-RA;ZI*'UT1-@:.&LU*ED&A
MOB7@F&\16/U<NK\]7^%P7_MLMS'_;!OWQ*TGY:&-XY:@Z61\5&?)K36PW;FA
M- 43CK?T59&VBW\GC8 '7[U2E<M.E1: 0TT@J++?,7)&_2V*,$Y+_OM;+D_K
MU;VV3N#]44;IJG\V]0#MKU*"J_LO)3]#.0/$.0 8*@;77#5R!5M6]#UZ-V:W
MS_/WGEG]0=_YE%BAY<=8]K:<.BF@@:O#0/E.F"(=Z-MD?=52#82[[^;C;I29
M4K3$=X8JG%D^IN!M\C&X0D9BCHJ0\HN\SD2 HD8_HU2>5.M$ ?!T0%$1#2'#
M8J0:-:!6EN8L,P4P$0-M!S"1(S(=,.E@% &82%"8!IAT440'F#1%#"PP&=DR
M8,&$GFZ/7UL26R>-@(-!O5+E8*^V !S, D&5JW[O+#*L7UH'-[9,'FEYC$F
M[0+/(2'+5:15=>3GPEWZ W?6SJ:H5+N7[0S8Q;OKH.S])4Y_0)P7JT$%:\X[
MHD& P,'""NE#M/3%>"926_@WM0<>[JVJ5H8I46/ X=PNLZJW9I01(8VXZS8%
MZYB[]7EL+C=DUG? ?L02@@_8L^ASST$41TQ@JHAS;[W*/"[8FRCP2-!CM,H1
M@5X4 <>4)L5ZC9OG%Y0V*K-GUX:-GN*2M<M%V2ZMIVEZ4WTKD==L-J70JR?Y
M%F*O1;-><[1S%M@HI8[F84B(L9K8 .:KQBT$%9[R1Y<[%$EKZ@$<5B34K7T_
M&]RF;A,<R$BM?O66O9C-7NE6JAPZG-^V7ZMO[#(]SVVY2"]N/RW?U7EOO'!>
MH^\T/&$_P=?D]Z4I=QJ7O[CQ[C*)8B)>V/IV@VQOX![=T0S5-QZDN@+V\ZX:
MJ&_P<.+HPB(4;%K*_AZ'FR#<TW^AY=ISMVPF4FRSL^9L1@0W1MJPOD/W:4=)
MXQ@@VW>Z<:)S)[1'H)B<";&2RWQDHT7'7NC:HO4>0&LGX%$AIW0Y%II[ (X
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
MDFN"2HO-!MOQ<O,Y>.(#WHU_'838W?J+%[+T\+>U-7!-"P04X$'8)D=\\])
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
MWW>Y&3E7WBQ"9VYFT9&+9KP-&XU94]O>82?Q\'+S& ?V[Q>OEYX5-6[--?<
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
M+W3+P*D6E,;)^WZ=MH6T*(SZ5.7+BA?=AZZMO#S4*L$4 '[<GZ/3DE$?>^B
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
MPV<#-A0&3)BJ2 ,5*G'Q^AV)#:GH_%B+Q8C#H<FX(<$CV[KD+XRN'YE.97E
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
M:K,J76/AKT<]BT>+\G0@[)790:_5Y6DKN3(E4!"D=&Z8C\< 79B=+#5]O#(
MX$+LIM/<:PMH%@NDV)+>8$J9TP_B4EO*6T*M"VKX+*!+;"3;5154_Q3HQ4\C
M.##O,;%GI,MWR^IX<H^S7+;IS%-$>%R)V!K%VS0KWQ15B2N-*ZUOV3DNAG(@
MJ@;#5&78]PTZ^>)IIS\Y'@-4V3M94OU)8P!@?]).I^D:E- \KK4?V+<[9!FS
M&)W7OUN& 5]Q.L;417<\!O"ZTY)JY80R3I/M>_[R=%2\M^JI[9)G)EVJW8';
MC]M-D?[A]30R(:15P*X)T%6QE]F&4FI'0U;/?J)-UW !FI=HU<#+6BQ?>NJ"
MVZSFEK9P^_=O:\INV/^Q'\N?)+!__!]02P,$%     @ DXTG50W8(O1T7P
MXG<' !4   !D<V=X+3(P,C(P-S,Q7W!R92YX;6SMO5MSX[B6)OI^(N8_Z-0\
MG)Z(SBI?TIGI';UG0KYE.=IIN6UGU>YYJ:!)2,(N"M0&2:==O_X ("F1(@$"
M)$B"D*(OY;0!$&M]W\)E86'A/_[/V\J?O (<P@#]_:?CGX]^F@#D!AY$B[__
M%(<?G-"%\*?_\[__Q__S'__OAP__N'B\FWB!&Z\ BB8N!DX$O,D/&"TGS\%Z
M[:#)-X Q]/W)!8;> DPFYS]_^OG+\:?//Y^<?/[X<?+A0]K2A1.2F@&:L"9/
M?C[>_.4R;35 ?YN<__+YEY.CDY/)E[^=?/K;V>GDX=NFW#?2R3FL*^A#].??
MZ/][(1^<$&%1^+>W$/[]IV44K?_VRR\_?OSX^<?ISP%>D/I'Q[_\X]O=D[L$
M*^<#1&'D(!?\-"'E_Q:R7]X%KA,Q3>6JO[U@/VO@])?-M[@EZ+\^9,4^T%]]
M.#[Y<'K\\UOH_91VD?Y9XB-9<?I7*"B?DR4I7VH_U<'Q^?GY+^RO/Q'M32;_
M@0,?/(+YA/WN;]'[&OS]IQ"NUCYMB_UNB<'\[S]YX>+M T7@Z',BR?^\2FF2
M_7>*O&L4P>C]%LT#O&)Z_&E"V__^>%OHBP="U\$1"']V@]4OM,0O<HTQX:34
M]DM;Z9XB0E+:D\L >0 1,I,?PL"''B7OA>-3=3\M 8A":2&5VC13U@<'DW)+
M$$'7\3N1?/<+QNAA\]=P-I^M 6:<U*4"7N-&2G\9K-88+$D9^ INR6RR AVH
MH?(K8]%')W:B^$TC=?6T)+U<!KY'EB37_XK)"-^!<JH^8J0V+IUP>>,'/SIA
MR+;M'F6_@J'K!V&,P17I/(9K.I#-YA=Q"!$(Y>6L;6<0F<BJ%A+5/F 0$B4K
M+G'$K0PBS]0EUA%"M9F,5WT0"6X<B']S_!A\ P[]-R-_ U$X[0PBTS-V/*);
M-XA)'QZ!"^"K\^++S[$2+0TBUXQ,3GC;BR8PE9L81));]$KX$6#YR:NR[B!]
M?\ !66!&[W2+1<QW39G>0(SJ9@9"@VQ^%Y#P81J&*ALR41.#2/(U"+P?T/<;
M2+"M.M!,XN(8>'?0>8$^F1$:67=5(X-(<Q>@Q3/ JROPTL0VBM6'D8!,8XTP
MR"H.TFNRJUG!B,V]9%D;0;0 R"4T((/,U]C!#HI (Z$DVQU$9K99N736,'*:
MV'VQ^B 27#L8$96&#P"SWC20HMS$,%A$@?LG<UW3_3797K'%^8/O-%H>"UL;
M:*:DCH)GYZV1%15J#S0^H @[;I1Z#"E=F'N8_#Q[\>$B<9L1J\X*7@9AH_5
MTP\-MZZ^)&:S:+ZFWE0?QN[B-2E/QV?'S_P6C8X1Y%L<1DZPH%T"7DOA*ILQ
MQ2/R$/C0;;8 %+8VN(?DN>FNM:H1<[PEC<42MF:2YZ2QA#7M&>%%:2P<KR%C
MO!*-)1,U9H2'HK%DO(8&]58TEF:W 4,\%RW&>5Y3 _H &DM3K&[$SK*Q++R&
M3-ME-A90HLT1[=@:JZ'=YP;?O;6;RW<:,7$GUYS?<NT:LZMK+JB@L<%W0%<@
M<J!"/$M-*X/+0S::/EQ!Y.#WAQB[2_*M!PQ=,/7]-!+T)L!9S $(654,/#UJ
M:/OQL6JO&*<TJ"XY71E<LUG_=I?[WT,PC_T[^ HTZ4WE0X-KA6SK;NB0^ C"
MV"]&2NIB4?T'S/';-)=9W)Q)$F+X2O1/(QS#"+/(\' :;<IJUX#DY\S1$%GR
M(;+DNT5],$3R8T9Y_NBO<SZNYAI1_8!)6M NM9%2DM'[%8;)5'])YC08W05T
MLM<N?>V'C/ +-Q>;VY(1<DT]C\W6CI_;(>D35MR\,;[QY@(+6S/".]Y<-FY+
M1LBEF;EJS0]Z0M!<R%(+AIP1M-EP<-L:/-:QN525K0QXZM%"DF+] 66@GOP
M%2X%H@7[T_4;=?&W6->I?F! +7QSHA@S.]GMI!9S;/(1<V-CF^M!K?G!(V6;
M"UK9BA&GF\UEXK9DA%QTF(F3:*[9G(9XN8145]"/(^!UIX-&7S7M/%CSDK'Q
METS3RW- K/<ZC. JN?9:5;#U)*GY^Z;ID.P:XA6[5TO=_=XMNO =]\\G=TD^
M&WX+/.#?!/C:<9=?Z>C?#>F:=<$T33[%JY6#W^G2@?YNZD;P%4;OG:BL[EO&
MZB87BL'&W.\(DCUK+ZJ2^[2QFKL/T"L(Z3C3;H9L\2UC=?-(.HNAFW6X1U))
M?=E8O5WB,*:_Z4=7W*\-?0M*NTM.LN41Q>)M3OVNP!Q@#+Q'\ I0#'+EVKIM
M^^K8B+2>]KD_;6X_.#XM]:TD R)%"ZZ[W.];'H3)MFYB;&GVJ\VXL''DL6&
M8*G%8=A)+XR)6]W\+AU,+]Z_@F"!G?62ALAE^3')C!Z'$9GJ< L]ZORZP?I+
M?W@FG^A:656?,D8S](2(!A1ZR:1<#:U>#:E]TAA-Z7;Z*7]"61-,V$P=51W,
MUS]/.HC @OK.[IP7X/]4J\.JMGR,"TW17+OG--?N\2>FY>(7VG?U&> 0=-_?
M_&<T=)IZ*GOH=.XSK3H=Z>EK5.YG5.S>.G?)_(ZTF[9.Z]?:EERVXIP$X"T"
MR />YK<PHI\Y(GT\FGR89 WE?R2-3I)6)\VN^3,Q*0Z!6^@+BX@/<%F=(6F/
MM14"]^=%\/J+!R#-NGW\KX_TQP_)CTR;Y)]_9#W=O:B2->Q3=?_])WZQ7[KN
MX1WAII_H</H&PYV.593XX]/IY_,OQY_/3XZ/SX^.S\X^G>>ZF6?,%!>[[& W
M:Y[\6")1$:*TQ"]K=OW@@[N$_H89<QRL1$I+/QK(]S_ 'L!__^GXITD<DEX%
MZV3@[T'_2<>N@I4#487R\W\V1O.R6BWB4"M*%R#,G?"%B1:''Q:.LV9(_ +\
M*,Q^PP#Y<'2<9I__G^FO_]AFD?6=D";,I3Z\"A.I+6\,;#(&TTR:%+F3$G)$
MNL3O=)<HB]M[UG4_/_GT#'=>SDIKY!<T!N!FX)7!EQ21:Z\C0CU8K<@ND0KZ
M#:Q> .:!OEO..,PE,:L 6TJT(;$N[PWI;_YXA(ME%#X'V67&5!!ZT!16@BE9
MJRC_"9'_\\B@;2.H,4.YRO*);-5Q<FDU^8%Z=SBK67$%8["77=PV$"=%^'0D
M".=$XJZ22V6,P;$A1D60Y<0S9CJ6PS6[:4X/CQPWJAZQ>>6,PE<.GB*D\E*-
M#-:*@>N.2'I+%J15P[&HN#$@RP[&RL*DV'X<&;:4Z0(LZ9^-P:X1+M6P<N4:
MJ8D^@@4,HR1YPV;+*,"ULKR-0,L+JG>UO,8PP&2IP*C4&PVF",6._PC6 1:A
MGR]6U,7YV=GGH]&#7BN?WG7S,%@_ /)9[QIY5X35 K +Y0K:.#X:UN^L">UZ
M 4<V-R>;C!OH@_N8LY+>+6(3KE*RI9">C=&"$P&SF0E%]\ZJRH"KBMF'LX1\
M*=:?1F6^-#8:DPEHN_*XI'E5\/MEX/'1%M:R#WQU<5,N?!ZCW:<. C)?A0%"
MP.?8?54QFZ"7EB_%^LL8L2XX"M/_4"4=U_FQ\V5M0EU-R!3Z<YN@/U& _F0?
MH*\6,O/ '-F$_:D"]J?[@'VUD!GVFMQO V)_27Z<X>?@!S\2K%326MQK1,Q0
M'Z7KK2 H6\+.,,N8B%S^,K^ZN+7XR\B9D6"4/KDBVY,M3*W=)\6L!5TD7P:V
M)H_<@& _!&'D^/\7KH7;^JK"1<4<GYU]/K$#^'HI,_A'Z;VCD]D4 X<#>/[/
M-D%<*U<&JB8W7;^@TMMQ_L,R0'R7^VX1F\"5DBT#>)2^MR?@THR'[\<G+\_T
M,E(%P+M%; )82K8,X%$ZW&CR<H@63^^KE\"O0+?P=YN@K1<LPW64WK2,N==O
M+DLQP'&:5Q6S"65I^;(PEE&ZSY+ C9R*Z/LT54'"5>5L@EM>P SO4;K,IK$'
M(^ ETMY Y" 7.OXF3JLJRK2NBE4L:")K1H@1>]-R]YB22RZS.")[2D3G.>X>
M6U3))E(TE#:CQ5CNBJ1BQABS*$X:RD=7.02EF'\7J+IX41]$J9^/QXZ^O)P9
M[N,*?KM%$:!IR. KN'(B)Y57$#935=P^W!7DS'#7Y&/K"??K%< +0NBO./@1
M+6E>-@?Q/>F5I>U#75[,#/2QA,JQ!4Z .7NZW%]M K5.K S$4?K94N%N(%[=
M>GQ,D[];B*I L S74;K74O&R+')\9+,2%F(K%"U#=Y1.MG15"6CN5_\6>>#M
M/P%_VMTI9Q/2\@)F5X@T^=FZ/[9,UHHW,'0=_[^!@_DWAWA%;0):2<8,Z['=
M"MU*=T-^([JSO5.RJ(734?M+5$3,@!Y+RI2B;,E%.#FH<V7M!;M.R SNL?C$
MID0TCXGG.U6.T,+?;8*U7K ,RG&YN>@E1WQ)IIU%( @8+)2R"599\3)PQ^7+
M^BWP8P(%3@3D.ZUWRMD'L(R &<1C\5PEDOT.?/\_4? #/0$G#!#P;L,P%ES8
MYI2W#W(503/H-?F[>H+^:>7X?I;ZB0MXH91],->+EX&KR>G5%[A+PM^ZTX=\
MH:+L'T>]-9:4+D-6D\,K35/_RVZ>^M;9Z[<9= /DT1=*Z1M'8>!#CR;R3Q]$
M(M*";;A)31+[XR.:Q'[3+OGY<G9_=7W_='U%?WJ:W=U>39_)/RZF=]/[R^O)
MTZ_7U\]//_61RUY#DNS9?!-J\A"$[-V,Z4O(7H7:L06Y*H-D TZ>0.'TN[J0
M,3:L@D0^_:^$.)K2FT6E-SL&@3=UXDFAO%/6&+ 5P.,A+B-:!\#K.J)HD?+;
M"9?TS3KRG^M_Q?#5\6E4W#2Z=#!^AVCQF^/'NPYNI;J&LD0&\#)9FDML3%+$
M%@.&Z]+[B.$C< $1_<4']Z!VX!#5,90:J@.(LHB:TB2:-9!4JJ$ZZ$RFBGG<
M4(99DBHB@2T8-=ACH%N!PUI6\"M8R0E%<8UYD* Y(QXP6#O0NWZC3W_3MY>9
M"@K3,H<:$C6MY$A3N8UYVZ Y66[1*Y$NP.]$:QQ6Y(M8"7^M@,8D9]6T&Y79
MA5J)M+1)MSW&BTJ/;PZQ+$C$O0^06[\BV"UK)?[RDAJ3T+7-.B!8 QR]/_A.
M\B JV5&OJ<^./]2+JA35=#;<T9#>F5]18+W)78<9&HC$#KV2=0><$+"'NV;S
M[V3=0^V"-T2(ZEC)#'6)]>:"'80:5VE':=+C%7AVWM*QDLL+?@4K2:$HKJ84
ML:\ OP3#'F;<$JS0 A*E;22^?G/]F-[E_1H$W@_H[V8T4:EJ)5D:"ZXYO>P@
MA*DAA=7 2X$[9I]CPF?A+M)*8 6BZ4H0._C&\0XZ+]"'$00A60^S[ W+P"?"
MA71M'+W7'$C)5C>&'TTC&5H)JLG+;,#"(*<&N5 '?@5C**$%8B%C9"37=#95
MY(@YYY@/SCL=A.5.,(N%32:*#++\@TL).2TXLB32XICTLZ0U/@NJRUM)! 51
M+3BL++I9,KG?:XZPA97L8T4#>2TXFDQM8>-KD1PFRN6+"OHT_%&&KF%"4E0+
MCB\SQ]LC> 4HKEDU5!>VCP4*<NHZUC0J)$YZ 5$WG=I !DD9-9UK#N^F"-#B
M&>#5%7B):@^XJPM;R %Y.:T[Q]RLBNK#'>KJV4>,9B)K.M <_";.SCQ92Q!N
M>?N(H2:JIO/,P0E17C[7<D)4Q3Y:*$NKZ\AR<&J43OASNE0(@RC6LH\@302V
MX>0S)V;]7L,^V.N$L^84E.:NAQ%[P8#>1PP073P!Y/)Q%]2PCP>JPFI^.7,0
M2B@?A<L>&'X^^W0\T(.:'9UT*DINY7W-W.L7PCO>.\6,HX8BEM5C1:V$UB1]
M\#R8=/W!@61U=.FL(9G*<CK@[2]J*]K'C(8R6W#J2?97\2KV:78?=B6%)C'"
M8 E0"%]!LJ:^"T*ZDI[-R>*:OR=5:<5" FE0@ 4'I8\@<B "WK6#$5F'A3FU
MD'T:="%OA5)?T3[.-)19TQFJ 1%[90U*KU_M8X.DC+;<"JU;YS<,ZK6/%XTD
M[NQL==B4@P],W4L00=?QY1,0GC5)0#CYM^+7_M=/AXR$@^Q9DQ<;IW&T)/OH
MOX#W'?EP15_ZK-_'<JL6C>;+^&+^&PMI0=!N27:6+EF:#DEI^Q@@D,N"?:K"
M*[<R5>R#OTZX+G:7O:\&MJ\YS^9I) GYJ^1"X$0V$_'3,_G/M^M[L@B8W4QF
M#]>/T^=;4L#P%4#B9MC(QYGTN:4&<ABP:(\;8@OT[(;VY'<8+2_C,"*]Q*2S
MR2UE>M^1_*_'=T$U:,F80: &N:+30(^85JP#0C)JTBO.;&<$\"MT0?@4^/RE
M *_"&)F@*(T%:X"O. C#!QS,N6[$7(DQ0EK7?4US^.#.'TI=2MHTS6%=YGE>
M\3%"K"2+!==EGH#OT^D(>=\<_">@T1FIZ#Q?+[>",7 WPK+"XZLFJ04S]B.!
MB*B7)E:_(NL8/V )SL1\$-:QC1+JPG80L3+,W X0V<[Y1/"IMX((4K5%\!6(
MR5%3RS9Z-!%7UYIA:(*DQ^IAM%7?YBX)[WJ-H(IMU%"65=/:PJQ0M^DJP!'\
MB^$VF^^F/>,%KP@KV4:4!M)J.G,VXH9>IC7>D+%;KJB0\[.S3U]&#;^<@+;<
MS=U(NPW!J@-^6]):Z&M$M.!"+AG6 ,&G9FNQ4\HVO&7$:WNQ]CS!&H$%/9X9
M-B_L*Y$U><F3TEO\BL1.2?N@EQ-1TS7:84T]&\RR,Q&(8C+(;8\'+\ \P"!W
M@_3ZC>B2B Z1@]_90Z_T3BD]30F81R8S'"Y_.ONB?3SL5U7:+O_F%B[#[VHV
MVDE1N  (S&%4I<X:3WJ#EHRAI(*379>8%FQ\TEN5'(WP#ER$E8QAA&ZX*TYK
MU!712;)4,Q(02'&GIM8>D:>))BPXI5>CRX$F#>@Q^@  LA^I]<@4RNP1'^KE
MUN6Z'YH%V<6W!X!9#&O-XI57W!AN**Q0E62QX 6X77DOG!"ZDCBSLL: W C!
M>@+PA;0@[F-7V"OHQ_P+/)S2MC- )*8%R\+? 7VX#GA3LK-Q%N ^7KT /)N7
M+B_43 *JS134>7(TBLE!BXP6G.+(ZD$TF2BU80Q9M#*A.<'X2K''R\'113H:
MR]XU4VQESXFFI)8.7Z@:]/Y:18J8GPI0<R^RG3:[R'8Y^_;P>/TK*7?[V_7D
M]I[\^_HGLZ^TY6Y')AIB.?Y*>JN_WRY7>X2^D"$'CX;HR#D[-,\TIL2O5J:%
MHL_WBI>]DK5MHD8;D2W8+XG$OPDPF5A1<CKEOC]C!X5$%116Y+%_^0G(WC_C
M) RD)G];-Q\SAHTZ**5&4,U*VX=!L 5%#X03JT#7):&A#PPJ9*]AC:"&Y611
ME;RSHT73-EF-DHB=RB81J]]RC3BQF+5[,-6I?'?RUK>RJFC9F(&JXT5]&W5T
M<4@VZ,#%?&.5&3%K1JJ/S9Q#3[].R4 UN[NZ?GSZ_R;7__7]]OF_QS,P2;^(
M(%EGH'2X:=^>Z<O;G/&D6*AH"\=G9Y]/!Q\:ZK$HIKVME<>" _"-E(E"Z  8
M(&KHTS?(\_D)ZQ@#O *. O"E1;2 "[G,?=\ /0_A;UV*Y<S%7!J^RFV*A)06
MP,YY8D)( 6$=*^F@+K$%KEZ)QR/$-)&M;R=E6DEOX:,;0JY4%[:2& JB6I!H
M;4=15\&*",^+L*PJ:R4'Y"6UX*[?1F%WA/;LZFS=UF)3T%SP&^TGQ')9L&30
M]72.45"+4:N"6THV39N'-< PH#XZ' UY!L:$3G+]7\68S&L/K%_L04/VMQF3
M+[Q^ ]B%(3?*7KD=RWC36G0+1I&M7SU\#CA;+^:(ICY>YNHGJVH&\2,@]A;"
M"*1YIQ,-/@(W6"#6BNBET:X_:P]3!]&4!5LBF4B)!YH'CU @BC!\B2.ZS'@.
MDJ/9%B$H@E;MH647BK!@"]8RDG?,C*@7RXK]E<Y%]_%(H9853M.MY639?8V*
MR>6&#2IRPN6-'_R0#1XZ:WA?8_KTZ^3F;O:[Z0\/Y0Y_-ZJI/W^O*#K4J$V[
M\H"#5TC0NWC_'M*<+9MLF5,W@J_)^YOB&'WUAHJ&<V)$9 \7P9WA7H>H%ASK
MM9SS!\1<,Y9*:P)[\"_LT.CV"KG0!P71GP,]XTL7GS*&C:HC4&_*L,#-<P5(
M7UW(8.1P*U_$&$[TCG699K5ZL6$(Z_C1A#VG4 --63#F9$F-BEY)WGZYLO"!
M1(TTI,E]:T!J#N9FI-F?B4H3%8OS^7/+'YC45$EMO;+FO _0?3;;/2=6$U5I
M<@HWO]?LA8LWRIB3H\\I7^AO-K(0*2[)R+LHO1?$*77@@YIJ+,AL212) 9F8
MKT#RWYSJT@-:SM!27_' IM;::IL%SYSY2]Y-U]H]?>"=-JVU?5_)E,P+'#4D
M[PP5U-#@51(]C1O#6DV'*3K$MR"4Y\%YS^*?W'_%$ .B)R)\]/[@.XB]=DI^
MRYY)YK!+O@%C&-0#,\HT;*FGMHY0<V;:DB(NXA B$(8@"6ZBD*1_X077JC1Q
M8%TK3;7UE9K#.WF]MYY'BYH\W3/.M=2318^P5*GA!B*'K*^[6=,I-FX,3S6M
MZ72(;T&@+%&+"X#''H6DX8<TIH[TF^N%Y98WAA\]X%XQ=RJIQ8*3ZD>P3I<+
ML_D5>.'19;?8?K-$2AOVK*(>"L+26UY$IX"]8UNS6*^HL=_,455,VX61023*
MC:R9W"R99):K1F*BJJRWYX1JI!X;%CR))=T$.-'B(KEF$!*5X_2N@O,"?1B]
M5RA>/&PU:W//>:A==6T/LLT9^N2!:+WSVV\2MM23IJ/SP;T0U_,Y<,FV^OK-
M73K$$A^) <P0U0S]/^IS?G5\N@IY!$2]T"7FP7R"R"O^(E?R%KE^3-\3NH+A
M.@@=_RL.XC6I0?[M)L !;XL;A\?#=VR_[<-0_5OPKEXK'2:)!,KA&*EF\V@E
M"'+,J]].[+<I&:!K6P(A#)B8!A\"#W;3\V1S;D?JJKVVG8]G9Y]/#K;3GZ:S
M\XZC3A)0]'V=*EZO?78 Z?C9 >0MF@=XE1!(?!@K6=L8PJJ>MK:1SX*\-+<H
M @2<B*8%(S;.C3<OE#(&;!T@5L6+UTMKP8GHYK(-".O0WRUH/0&D!.[BJFT'
MR8GHO.<'88S)!BQT,5PGMXFS8+F?"OAP$A$='Y'_F7R8;-NB_]@V-PGFDV@)
M)KE&3<XZ-,,+!Z7WJK>9FB![8?,AI^G9/%W@./XVB1-GPM34YB!#009;#E'2
MZPLGA.%LGN_\,^''A<\_Q%1OR)BA1"LG\J.))IUT]HYKIT-.A9B2 \Y)><!A
MC=&A9J<YDX>:J>L&,3LH?"",<OFI>D0%A]DWP 6"<^C2"/Y2W^H& KG*QAA_
M/4J%/4-SX<9IQ2R*/H0%[TB-^9Z6S7>G%9.M-ANS+X/5"QGMTS&;I5W)2<&Q
M9-7*@T[YN4YNP9*=YL65BP9P1@Q@H+RES="LFL,;"-R!Q:\Q##",WEFK/9C_
MC0,QR_G]#3CTWVS)(SD.?"R/ [2Y"6MOLM.@R4/"1@E;67A3N;CH(.9>U:4Z
M*Q?6,<:X97#)F[*Z5!98\#-V/)"N5<)'X +XFG\HML:&S\HVS!J<9"U."DV:
M;,7;CO*,M[+$(#9[%S@HO \(I E\*'FD+M=!^1F[45O&V+@ M;QIZQ/2 I/?
M%5W2UC^5;9VU-"DVU8F-<S(J\4'DN>(D*FC)];3[(9X5B@L;8V;RBMXD:U(3
MR@*SHC=]$>''NZ0]?2[;4[X)D^?*33]K#4Y8<J##K5*/ZJ9(494BFS\-]]J*
M!";%DRQ%F2RPT"SW2%5^EQIC_5(VUJRUB8.\2;X]DRV7FWZ%8[\2Y8>Z2U?=
M+WFK5FG"&"N7QF_GAEP[22VP?5X&\AJ[/Z^:I+.6)INF3#;Y7<GO073]ED;"
M?0T"[P?T?>[LK5)UJ#"E0A=59O7:FL:8?1,,=P*7&LEJ@>%GZI$S^..CLL'G
M6NAS<YM]MG:-+2HXB$V6.U1GBX(:QMA@/1YYBU.5R )+F[HNCDD_TVO.4-:S
M=%P109:V-2DV9O(T6Y;^,L:8O[*6*#_,PRVIY_[!>:=^&WH<6NJIO&$W;*UH
M(I^)B1P-%OXAAVKA<1:-0ELP+MP%:/$,\"J?7*EF1*@(\:*M?"!BK"9I.R8/
M!K2+M?,VK]! +UF\*.R=.:6-,5NQ_HL/3,A+8H,MTFNVLO-R1:36IK[)UI=T
MDF-UNW\<Y@"7YJ(%FWSO29]J3VJ%E8RQO6KM%TYCU06QP/1H1BJ8O#>P21#$
MXDF1]S5VL(,B(&V9%;%3N>;_?5+X '-0%S[1YS962NS:N;)Q*\/<2=[VEG2P
MT&'Y.5:M$6/,OR7>A=N^[370S[@Q'+WX*E:@ET0CEM.KJ08T7?0;<EIBCT#N
M/"I5,_M41/VQ5B;;9DQ>'M+CK^B=,]'L_G&8"S8T;>4R\ FYPJ1#-'9-?NJ0
MKE\D]1="ZL_#F'4U)H6K-:UD&N?MFFL'(S(LT6Q)S, D[;,B4B]K:4*:FF1M
M&6VD.Z+SS)5;;)B\@SO=J3-4;GES#+,&AT)R/25I]"9*Z'W:I,-1Z>UD&F$A
MNX>KB/]CC7Y@K4[RS4ZR=DVVV%R \3S?^4?@T_2S+,,WHP7MH9>E >?Y1ELV
M-HP/5;;3%_E.U_I:V[5JS$BBAQ\%WVT'FK' T91+4B(Y%%5$-R:-3+)63!YX
M-O)*1",+2@Z;:D<E;HE?Q1ACE\"D,J].S^OY@18/U-U 57'A^/2U KI@8AF)
MZ,L%+SY<I+GQ$I\7+5AX::3&F"M"%K-F)MD'_WV2^^0D]TWF*]X4SSYKLO4_
M@E> 8D!??\CZ_3N,EI=Q&!%*8>Y=/LE: SU)).Q=W0@A6]V8T4(1P^)#1"UD
M'?<HPFY879+US4)VHC^IB&Y,[O!MFS'9UEE?D[F"AK&_T14?]Z"WKO @EEWL
M%/M7VC/Y!8!2&T7>GY^=?3H?\ IA+79YTVXOY[CMNR9UH:3)5P17YAN>T)8G
MM.E)L6V3QX$JS5S[PB1\<E4&RV!-NY/OHD(R#MGJQHP$*NCM)G]N+*@%^_HG
ML*!"T^S:JH- 13SEIK4QV7W2YT>P#C![4YECZ]QBPYSF[71'X1ROOJ8Y5EV#
M3>$LKZ%<XY[/*S)>9JD!I<R8T.OH1"KSY>3?LH;_E^$6/=XDF"F:._UZ3_Y_
M;9H\J<K&V+9:$LP6PED9KG4/?N1T@0-$?G23Y8X*9U2;&2E[M(AI05Q6/B?J
MLWR>IM,C\C^B_*J3?TM:,WUFL#_1ZI.[!%[L@VW&_3Q.%^^Y?]4N%!LT53"<
MTZ/AQH?V25BUB6_E_+/5#M,#$>(&(AB!._A*]Y+%S  7[]^<?P;XTG?"^E3>
MK1NVDH-:E='/3#;0V)Y3+9GI;Z@7(N>,D,TU+=F*15S3(7E*K-,1+Y$JLT\K
MK94^EM=*G!S48UDVC3L9]780O0(8OA)ZO*8CYC3:=)<!(3\W2;=DS "AFKA:
MEZQ6KGXV"L@E7T@-VYNA1^#&&).=)G-:?$?!2P@P2UAZB]9Q1/X<()?4DIJ0
MNOC4:$G9FS(LV.MSDK K365GY:F,FXI]+)/9F'*RY]?_B<)9OG&6>9PL[S;O
MX>;@5=A>*;9HS*@AF9]=MZA6SF3E 6+J^\$/&L))EOZ71"@8W05A*+4^:M;8
MV'BE44H+IIE22G:5^>53>7XII?_O?%X9_SL (MN4J%&DYO' X7PM7P2HE\R"
MJ)VJI.-*AO>E;'C5J<?'LJJS/@=YX\SCYIFYWGSCUAO[KI]?R=#/RX9>RC4^
M%ANW.^GX=KLB..-1=%-*MV3,V- V*;DNV36-&Z\ OP2#IRE7&3&.C\HC1M;.
M4$OQ\68MW])Q@X6T\99J&&.D:EG+526R8,HNIV96,L'CJFBK4N[RL4S;MB0Q
M+_@3J^!5\KT*&RC:Q<G(4I6WE-,"^T^SSZK8?$6$9=+*6,Q\# F222=H^@$I
M:^64-L8T95(BRTM@Y>%&54[H;"QZ_^9$,>V>)!F46QH54?1(9\%Q1BG=G,H8
M7G&<4<Z1.);Q?)S)$K=KC]V.T: 0=XJ\*^C'$? 45VQ*K1EC^BJ)%G7*:L$2
M3I"+46E,^%P>$\09&<<R/AQ2,^8L9K7V@W< G@!^A2[8Y@?,RT*C!%SVTVQ.
M8]$6"/Y%9 &$V(F "J.1WN\9,U[I3^?8K\ZL7$5O55C*>SG]X6"/#6<S)FI(
M@S,3189AO%IO+QK*<UO'1XK@G-I)Z,X49>7UH"J]Y1')ZVWJ1O!5=FO8ON$]
M8ZL&Y?1SS\@TAM+?AM,X6I*.DEGI.UEOXIP"V>KQXOWZ#6 7AN !DUGNT4&+
M]@QN_>%]9G@WRDLMX*.E%G ?H%<0$D22;6NS\5BFD;U@9F-%I"P[LXMEE7::
MRUV<FBQ=3<WB*(P<1*-/U$BH\QLV<[1S/:44_F07A8N3SLNN A^)M9.)A%H\
MG6FFR-OYS7<$HU;+7*V?M)G@?:LMY?MG,_C.">C::H7FWWP"4>2#O.!4551P
MNCB28JFF5BTD8I>:2;GV9<1N_F:O)BB= %2$8+=Z.V$L!P0V/J)0V2669 5M
MHISDYM,&+1DS.K5X6D&7V!:<,.:?6E 94$XJ(K0+#RZ,98 8_\L+VWF5=6\3
M04/'Z6TO+][I%!X@B5M<S1LT9G!0?Y-!L]"6'\*Q95OLTJ LFKN IC@ANGDF
M/:!+Q5"!8M(M6<&M=M):$-I6\_2'TA14<4.A_@&0L<Q+=KT$4MS[B=ZZ4',#
M*;56M*F/PXT@3=\)T2FW!6O7JF=#E :0DXH!I.KQD-&,&>-\120W.VZV=-<$
M,TSXF&W/PFD48?C"0C]I/E  %^B29L#!$(07[U]!L,#.>@G=*0:.RNI#\Q?-
M&6-47BWI61^6+XYW59\;22[>TS\JG'2HM#9R^K67U?*PL6M$)J_WWZ&72U8Y
M0T7;"^\"M& I!Y)$ [?H%GGP%7JQXY?M-OFQ]HV./KLP<A(/I" +TE[GWS:X
M I$#?;F5W,>CT_(S<,6G0=+F3%_!'=X&R;]H01?=M>.17#/&C"G]O@G"%5WO
M@W.FO+4P?8,AAS"<TL;P0BNZ9=*HB,_EAC$P)^^0@*M@Y4"D 'BAGG'0JV D
MAW"]O)JPYH38_%<,PLCY 5Z^@=4+P#M(514I=O+,3%#JU;H3^B(CY) C,@>^
M![+LQ?"-#UZA@)W0U8NH:<NI$[BO1$2T@C[@0[=3Q$[P9(34M&_2"=_S$M#)
M,#_Q\X'D%K834C5QN3=4M."4[P3]*Q^DZI)V(J0@JZ:K'3IM[S<8QHY/HSQ\
M2.,@^9A6E[034P59N7<=M,!S&;!'95!(77+/P%VBP \6$(3W?]W!%8R QP=,
MMJZ=$+:2GAO0K\?F "G-LCQ!7V!OI5)V B4I)S?N7<_2'Z*' *)(L/8OE+ 3
M"@D94QC.NX'A!H:NXY/?G\HM!D7E[81(6>)LGWUDT*+C'D27RY<[W^4CNU/$
M3C!EA,SP,\E1<A.\13@0#):% G9B5R]BAIQ)GI)_K,/-6NA=:(#5)>W$4D'6
M#-1!_"?='3'<D5_<1F"E<)RTJ6(<)_H[4Q+K8$A/J:ZGD=);KL]!:E69$@!]
M)20)S$W_XG&HH])$48V?B!I/C1M>Q)B7:=-:_DZ>11ETX,D' Z22YYZ3^XH#
M6B2YLQ@[_G1%XX%J!J8F3=K(-NWZT#2(C89]F^>N6Q%NT\K^<DRL DW'4&;2
MBEH61 N"!/DIA!Z[6TD1QC3)&)L-6+JQV7P61_1B'<L:"7Z%BZ4\ZUI\9$](
MJ5M#FO*_M>$L9UO73/@DQ>Y-@--K$+ET&,_T4GNTNQOH]%LVD;)_16DZ6AS5
M>+K)7=%ZT-RT9!,)=:NA@ZQNIA LI]U\MB?%)6"Y@3VADXKTFG*EF3E0/6!Z
M57#EY"YRI<,X?9<M<4L^03*4YS1V1?0U9;LP>;JU^\Z>L+(#)6E*OC8:\F:O
MTLSP71"&G7-8_7/[2V5-NN*>YVM^<WGX(P[Z>'WT?HO(^@.0R>DV#&/@S3#]
M+_57W,?TS"=-&9K^5?XPI$'C-E.W \WHBF,P=OE9])Y=AQ%<T974=^0&O@_<
M"/)O![9ILJCLSU;14)L^= 5AE,G7VP7C!PQ\N"+:P.\/,7:73OKNP?;U)3+#
M;(^F,GVIWDL^$=Y+_C#)=6.2]6/".C+9]F1"9KG)MB^3K#.'>\V'>\V&C%;-
M$-9WKWEG8!IQB 'G&JC\VJM\:=2 64P+NE(++*[X>WFOV0#H53"20[A>WF[O
M-;>-US44E'JU[ISHR AIX+WF-N&ZMD!7+Z*!]YK_L1;<?=C\T4[ Q.+MR2UF
M6\!4$[?;6\QZ;[S:@I""K-Q0@Y'>>+4%PE;2=WN-.;'_(Y6QL:*PG;"IB3N&
MF\FV(",II\DWDVV!0D+&;F\F,RL]/E<8P:H*%SO^A73\HP7@J(G+/\C3.-6<
MJ$PU%84M!DI:W$%O'FOR.MY 1!8^+//P+0$,+>@17Y*#^(*,Z_\,\*7O$*WR
M'<X*+1A'FHZ<T&U5PO6TF$:1K2SWSDKLIE9LQ3BJM,54B272&C'K""-[&H+%
MN%(+6D*.@TZBQI@8((U7F06J&NCV(..:T)<&OF]O^_/7!KRRE@.G+KM9P_DS
M=CQ I15;YFXQRU%5$IOK7!\$T/N OCVX!A&8+LAJEUV2$D++K[ G("LJ0).[
MO0!W"-R?%\'K+QZ #.E_?:0_?DA^3,9C /^X PO'3]X/J5B!5Y0P#D#-*VQ9
MD;NP4#G(DHY5+H5W_VP,6+):+>)0*XI9BU-1V*Q\:,VFBC'@]1]0)=:!IDO@
M>YO4QP J*6->IDUK^3MX$[##3 +;*\+L@#'I(-%!161OPU:*2CHG2CH9+4ET
MJJ"#!_Y,N?7"4T=V"QV"\!:Y,>:/0NT:M8ER'6JD@X?VM(Y4.6W16^>;FY!>
MLH#[/<!_0K2X=-8P<ORI]\\XC-C0+1JWFK9I$Z6Z4XBF)=28QK3C]B/8L4WD
MTB9_V[PWYPF7$(@,8](C<(,%@G\![]8C., Y=#:^H<SXIB@_BI._Q2O@7=*A
M'$5)27G:Z?G>GG"T0V59G&6GK=9R?^B/U[D_',BM16-M,P!MANP%O;QM+\>O
M4FVD26L&H?Q.'PX6T(4"VV85TF 0\MZ@QKJAIU(E]=!WX9\!7MW2$ROP[+SQ
M<OH-W1V;F&^D+MLF(JHT@A:)B+181(76WE.=S=9LBX,6=\ )P>S%APO66GO>
M-_CHGK-;E\9TY2@R,S]<X^$AFP-S8T _2_CJ#]M$]H&UUCI$W,ZU_ UI +G0
M\?NE>]5G#V37I+/6KWD9L$I_+D28B9=T8#<M59>?*FC\XY&1E]:Z67]HT%/K
M)\GL'(2W 95]C+VYK]E$YB%4E?'9QO-!&:5]#0+O!_1]R7&YXZ\=V-Q.51F;
MV[[,D6>S.?F5)<YM*Q, $Q5F&8#;GXS7?6%/**Q5/1EMVYY#FI!94L>D]8"#
M-<#1^X/OH(B4H$I=TQ"7'M86W&_O";%[4EQ&^;9/D]A"^9P?J+=@DM(W#Q37
MH;",VFT?+K&%VK-H"?#VU*HW>E=^]T!Q74K+:-[V-9,"S4W/T/_ \%R""+J.
M'ZKFZS_M-%\_J5_HW2&!?U7EO4W@__%XN/.(9@AK2^"?B7Y(X%^1'7U(7FA%
MES\QRHAO_ 7C8@8R!<#YF<M,@%X%(SF$Z^7M-N^-UIS'ID)4K^2=0SH%6;N%
MI_><Q]9 V$IZ38F+NLRE:PU0DG)J2FS212Y=:Z"0D+';#/PMGY.Q!@@9(=O>
M;S3K.1EKH*L74=,]OH&?D[$&,+%XFAZE;[\+[R-OF@F8:MY=RXK<1:K*;O.F
M#0F6K%:+.-2*8KQ;8W/8(>_1J#X?L=#2&NM@R!>[=.5_SB7UNB%*SLG.88J@
MAG%$44:T3 I5<3M+@M;;F5TF[6[VUN\AF,<^3>RJ?"+WL>9$;G.XMOWF)/GH
M)/GJA'WV<-1V.&K+F]S)_AZUG5ASU#;<<R9#\D<K"\KD:JL2L]:SPS]G8@)5
MVF*JQ!)IC9C%E.Z>,S&< =)X5:QP%34PLN=,[ -.77;[GC.Q#U4EL??C.1-[
M05940!?/F1@5'&< T!VMQ%7$-VN8[BDXS@#H53"20[A>WC$%QQD*4;V2=]9,
M"K+:%AQG"X2MI!]#<)PM0$G*:7)PG"U02,AH=G"<+4#("&E9<-RI)=#5BVA)
M<)PM@(G%VZ_@. ,PU;R[EA5Y?(^*#@F6K%:+.-2*8M814:?!<?996F,=6/"H
M*-_WF\5"S7F!+3)5C:..,L8J1\HU<H\_;NX!!S<!7CF/((P)N6;S-,\Z^9-J
MO-Q9;0:+8,*^-4D_-@GFD^WG]B-.KFDCILPZ.<+(/(8CJ&GL0-(\.JZIU)J&
M$8->*ZC2P#V(DB=([H)08=%277_/V%,ONZ;WB0W@T+6#$42+\ '@IR71>\U(
MRBMN(4.41+7@GD>%160&L:N*"R>$KOR@(FS&..8HX2XUL*C+;_4<Q5/'%?3C
MJ/;5<_F&BIK]2#1[MB_,$FF@P[FKTXW4C0/Q;XX?@V_ H?]F$5%JVZ:/1\>[
MVR;:ZH0U.\FW.YK]T48K6ZE"SAPN+CK,'2'"":9PX0V@0B%CK%I&\X7;//5B
M6'!7)UDX;V2]2W-E"J+_!#6,P5H!PS+PJ@*:Y0SG]%X8WR>L8QRHJOA((RR0
MURR,OP($L$-?^)AZ*X@@'<0B^ JNW]8 A=6A@4IUQX*Y +$RZLTE-PO]W+KG
M%JWCZ)E\43!>\XH;AW&CP5I).DU+Z2'GZRIYA6,[OX)Q!%#"4HX*38;T\9(A
M>\PZ=:=_Q<&/:/E(K$HX(RBV,@K:*$T,.A1@(9OH/BF(4:1,H')%^SDC*;-Y
M,U"(HQQ%R+]VZ4%^]<>C@Q95:XS"WXP#66E!42^*>6<&\MA5VN_.7XW!KQZ*
M"MA&-39+ ?>-[%%6\8H+7>'OYH$GZ%<1OGHYQ@J@\R8&,/_W,0-8*X=YTUYS
MU_==36AIN6!1)6<CFQ@5Y1HR2)1S:>(*8/C*7#VW*(QP3(5@QV[A;'X9K%8!
M>HH"]\]?@;][F*E:W5RDQ:!MT=8B<6>1GQT0(96'24<%RHYD99G JV\Q%91$
MUC3T=\B%KV37-T/;?Y<NX]04MPYI.0G;;H?.$V 16)#>>BFT+=X,YV:?8M[]
M<(H\^K;C*Y$*A.7WZ85E+4%823Q-\_@8'H2G2;?8L)9[F3Q[X/-]U]$C'[*N
MVO+X6=:U,C3=I*[AY!!14>5)-IQ&VX@5Q:BI$]FH*5)L\^E)[ML3)\K7.017
M]='[:A8@[U?@+8CI3%WR)_;B<*[+HCBLQNT9,Q"IAFSIE=@\KY,RI5+!KT (
M%Z@NL*NZL#%DZ ;D,HD4U&!67$BYX\+  %YQXP!7 $0&38&49N&9]1EXTS 5
M8\MXX8&L1,T1H"P JFKH;R:R69#?!V1%EPE2EV]UMZ1MD,J*:%:.S<V:Y>)]
M\^.OD&QWL+M\OP.OP!>]>R!5V3B@NYZ26ZC%@I.GRBUC60_BEQ)4VB@J\M/P
M_&J!OX!,C55AP<9@(R]SMH1,A\?""4=0PUR^-(980!M)^2TER8DR24[VG"0B
M^6V:G7(BGRJ3Y'3/22*2W[RXPUY<FW<U<3:MVC2.:%TOH?5KRRI:)L]_U#(M
M*68%><3@B@@D4,+@@3_#G1/K.Q?>2WKITE,GV3*,."2^7-*@W/ 6:4FL<2I_
M1)Q^> +19$X+O;)"JT/VC<%ZGSY6E2#@S= C<&.,B:W0#$7A=Q2\A "_TM4!
M6V+28!_D$IMAK!0=&6O\@C&CF.HA<M<ZL,DQT)>/VX!)L&M:Z/%Z6\BQ@]=;
M'?^#U_O@JQK25V4%25H-]'7>*\U?,9>,_4^7'6K4)G]];I3X'4;+DE["HF+"
MHAHWNW#6EL+\V_I;16 ^$V ^VD!U58=)?[K5-*:O 8:!]Q0Y.#+F/DA3)7)T
M^!"3"=8)2S?(NO[<P23Z5V\']QJMLX<G$$5^L@[MQR)R'SS8Q! *UG0H:+55
MT.NU]*6*6^3ZL4=?5<K2@?=C)/SO'VS& 'V;=?&6]X!L-RJZ(>A?S^? C6;S
M;\%K,M#<HIL  [A UV\N.XK:,9/A.[3G=F,H /W<%A[)7&3R]OUXGXQE .5J
M>L<ZV<!?HW*NCI->HB*>L>.!J<O2;%(M ,B4Q'Z]_:=B),19^8D1UN D^]!D
MV_3F;[FOC2;T(=?GFC?#*DK^<3K0<%>&^RLFL\(EL0#")XX XDK&3=8<?9>'
MC 9RZ3V/&7[ZF_I^\,-!+B +@*L@?HGFL5]62PT]5-H8,5M:B]G6Q:4[PU-G
M8\H]B%1'E&V5$3-$52I=WIT@<OR!0BLYBPC514,IPPY_T; ?"X2AC/D[(LM?
M'WBY/HE-F5^A2/DOA/*?S3/DXRI#5I1I\"A]CE/I 6"7JG@!9O/4DK8253E]
MA!7&!V=#F3K+L#G$0/R @U<8DH;)JN62=!U&U NDOJLKQ;>+=G6;CT[F 9XD
MGYTDW]V3X?MD/]?SAHX*E<_)MA>SLT".0:B3'REV]<%ABJC*>(FA+-7@*9E[
M'3Q^)]L+,I?.>:10;&6\/-$A:"=)G[4L'LN2Y.7=+B62PZ1P-I<X5&S;YOBX
MTIW8FHZUJYXQ-W+8Z7;-,O"166^+EF-MQ[C\TZM^'$^S: EPXV.J3^5C*M9@
MOT=1G*$WS/*$?]C^A(((?/CT(:"=_("WG:SXC5?41'X UM.RNG.*(^@]B'X/
M\)\0+2Z=-8P<?^K],PXC%I.P!8*&+$S=?\5D3<8.;*L$:]:2,?.)9G!VYA^-
MRAG<U:5ISF'&GL0GB">6<D'[2:,HNRW;G]T9I?84BU]ASS@BKX,.3KP&6&M,
M/0\F';]%\P"ODER\B@N0TI%7>0'R8;+]TB3WJ<%6)O>$-<_!#41D"0H=?_.@
M2=J=9R)N3-&LF* E:^K9NZZR!3%]E">;W&YBY+'WM6[1=4@,YT?E%E6N:I'<
MYV=G7P;:032 9;LO;2%K9PN!3@WY 0=DWQ*]3Y%W358ZZYR2).WV2WGCD#4Z
M<9 WV30[FH..K/L/OH.BO&(XQQX2Y8=Y4-1= B_VP6S.[:$H58]L=6,L7QJW
MPJ.C;:2T(!D!5^J+=_IDO2#-CD1-8ZBA!>W*@Y%&*C#K30B^*LBGA>EO)&H:
M1X&FF"F@7R.]6>A?!JMU3%8=F]X+T]5P2A?D/#LE6YM/AJ)<@TT9916)S4+V
M)L8(1F1)1N2_@6_TIU"<BXA;H2CM1YOP513:K+=@[@!9)"\#LC59K7%V>4V(
ML:"&Q2"K2LWURNAY,3B3@V:[=6A<);V7=1F'4; BV[]*_.0K6@AC2^&Y)\/#
MG.Y2__%WLI?&-.MPA&.7=D=HM*(J%L+=6&SN2:Y9Z^J[FM1M]16- [VOC958
M Q9D3^-*SF[BJ1*&53*.+ W15: )7VY;SFNGKANO8I\&N5T!TG<7IF<N:Q\P
M*)$W704X@G^QWW,UQ9MQ-#5O+_<ZU9 M)\A<J>\!CWFB*O:R25GJ<9X;WY(&
MT +2@$\61:%VU'1>/FK:-CA)6AS-*=.N*@C0UV\T?Q-$BZ]!X/V OL\Y<%*K
M.O#9TPU$, )W\)7FI2KV6^[TJ:X!8P:%)HA6'T4U$MF"PRB!W!?OWYQ_!OC2
M=\)0]/:#? O&\$83_A6NS9;*,,R=S9=F*\N]LQ(?62FV8AQ)VF*JQ!)IC9C%
ME,PG^ C\)*/5$J[%7G%!C3$Q0!JOBF,N10V8A?@5?3:"K*"]9^ N4> 'B_='
MN%C6G(74U"K*?3;\Y:IND&^B!;-.P=C->RJW&.[=8GN"KY38F@Z\- %Z'R"R
M>5R#"$P7&$B<:O(K[ G(B@HPZT1,H)*ZHQ*9JL91H,^%OE@+%AR8"&07'9G4
M53..-(TQ5J(+7W9;#DX$PN=<^GG7O3J#. WM*:=4M&'+P8= '?RC#W&E/64/
M3W([#D T7)P[+U^<*Y^*%"[.P3XOSAV.2_9\N&A[+-)\;+!ZK9*;2:_?U@"%
MX!'0#2.1G.XKR!CD_S=PN*'>[5O>!X*UTH7=FZL*U=R3.>KY!_!?P;< 1<L&
M6R^)1O>4=E)JZ.!QM!'0CAK@\X] "]O2MHK:_;0O)!-)W\&K86/A%OD^]P6C
M9JWM,[^X\G?PG-9(&'83Q'H6:EEC>\POKOB:'JG2GI2>+R*5RMWQFDWGI ,<
MSK1M;O2LZ40!*6\^[\TRGFF#E-4W(I&RH^=6!^*GS/JR7Q/>UN)T<:S0XIX2
MK5X'*=O.QY6@*M.4DD_\^*A\4R!K:+!4<1M)-KWB^*M%!0<.YL^Z)A>Y7RAM
MC%W6XU =E%\OC041^!=Q"!$(PUS>6T&T/:>T,5 W ;%, 14IS0J+K>HY_9'L
MP(5!\K7UC$-8!2,YA.OEU80U9[KX#8:QX]/L0SZD^>WY64&J2XX"HGHE[VSN
M%&3M%I[+@+TPAL(U68IM(J<A".__NH,KLG#S^(#)UK43PE;2:PH\YX#Z7S$(
M(^<'>.%CMU/$3HADA-1TUM1HL<-[WI$0"L,W/GB% G9"5R^BIH,<G<!])2*B
M%?0%D]Q.D:)D]/7@+Q: )R.DIE,2G?#1%/?+ESO?Y<.W4\1.^&2$U'0*H1.^
MF^ MPD%UWL]R 3NAJQ=QR&, #G#_X-QJ+?[13L#$XFGRK _IB<D\%7<U-Z!*
MY8S#NYWW14X^"V+M,D%K<#8.7CF ^,"*\+3D)>'-<4\RS'E7,89H\< Z5P-W
M517K*" MI"W7@S8#(?6#) D7ILA[B+&[=,+LT7JBBMR[=#4\46C).OJTE=V6
ML-GF,\C ;S)T,(4<:W-T[+[KVL.A-Z$NCDGWH/,"?;) 5GS,]?BX?/R=-CG)
MM3F:NU]E=:0OZG$.T*7KJ;_;JDFBZ]7:#]X!8-EVJGK(D:BVGG%CNQ0&9<MN
M)J@M][Y2I3W@8$[VR4R&&U#'#7$E6XC10$I;%HW)Z[,\M7%8(:YD"RL:2&G+
MHD^5$)):HL_3#ISHKMT((2F@KFM-_:81N O0XAG@U15X47NN\_BDO#2DC7T@
M/%Y-:'.C614RV>MB*7F%!LI2^,(>K\%QW=N;%26-,4^QWHN9!>6DL"!N\I)T
M$D8WCDN'G'=!R&2YH#' JL)6!EQ2.+.")(N=%L9%5A4U#CY)$.K0$TC7;63=
M(W@-_%>(%K,UP [UWQ4[QC_RE*MI.& "O>\<@;80MUL$J1MO-D\Z<Q%@'/P@
M?0N?@Z=X36/^;@(,X )=O[E+!RWHNXNWB"P_0!@]DKW^K\!;D.)\E/6U;@T3
M.E9)MT&73P#! #\!EZPF/%E3KZUD#;;-)#4KGV]Q12%8'94+&H=C\]61I'!F
MY=8N=KKV>05><<-A5%@E*4G8[3S;V\@Y\/&@DLHU#)]=O]$>XBAG@.1?N\9'
M?O7'(YNJRT-EX6^&FY7,Z%@O3Z=SF3P6E2:U\U=C\*C7:@4"W6\86F#PS7F#
MJWC%1:'P=_-P$/2KB$2]' 9@ 9$8B_S?BS*<$QG.1X-%K1QF+=9^<S"D0R[=
MU@E6V;O%C$&H_1I;2C2S7K_(=UFXMBX7- XX*?6+41-(UO&-7@<YGC/#W\,'
M#%>L+Q?DGW?P)<""N[RUM8P&2:#MG85T0T'-\O47!Y:[FJL5G-+& :K+)2&6
M<,B+AYK@S_M)-[O 9+VU<9M>.FORE^B=PPF5)@PGBACN,EE:BVY+>-Z.O0&\
MDCO&)P4MHX2D@+9$X!7%O7!"&#X1$1QOAO*3ZK$4'?C5K2:)HMBVA.E5#9[?
M$9')RX;,RV"U@NR6R@T #P"[%.0%+T*H<7N6D4NO'FQ)<EZEE>3A"C)'MUGJ
M\!O9 UXI"M]!/O,UA@$FWV.+J,&9)<$;BUDAPGRX)..Z8 81[4,FZRR.PLA!
M-'7M=$5O5?*@KZEF&QV:B*LID4C/>7CO@!.J7D,\K8@U9\V,)L8\Z2XGMGSW
MCP,9:AB"!)TK@A^&C$ZBV')!C0)?/QV=#982K5KO1=-3D\*\&/..H@"&A*TI
M.#+1 #8 J1Q","28]5#(A1",'+CF<0=&@"?HEVS<@;D :IHMZ\Z!:FH9 WK[
MX;>-Q!:DX$K$WERG8/)O-OWL7P)GOUSED9!%##6/,(V$[^!4R  W2:4^$/CA
M^,H4VM3:*^Z(I>[@1*F"-#WLJ&DJ^P"1QL+9O*B"]&$?U2UWZ3'X=,O]8;+]
MU"283S8?2PI,TL\=MN;Z\G44X+P,0FZ.CE)!8RR]?B,NV7DK1_FG)7O" *_J
M$"X7'!'"DIWO9T@>8I01 #M&/*5@;'W@GDN(,CR,Q4'JP7D7I=2L+EQ4UO'9
MI]-34P%6$*"# ^_AT7Z$BV4TFW\/D^<29R]D08/H*XK9#>B; !=UE"4+XAV%
MMVAQ1+S1+:65!^!%!?P.J,Z -WTEOUU4;'EYL6"JS8R(1EI$Z^ @W7#NT$T;
M/32FL7!IF%(3[E0T8PMW9$7KX(1]&.? -R>*,4MAM^L<:)P:^/3HE.L@V'ZN
MRD$PQLS!YCL)LFSELQ<?+AAG;F*" DBO'F:+MV38)+2>S6\(=HY/GWKF# ]M
MFAS14*%=3"M=%%7.U<VJ+=/150SNR8CQ_ /XK^!;@**E^"A,O;D1\4JKB)8Z
M1>0T1"WM^4?0DDII*Q8R2"19!_<>1D8<\F5Q")M".[:2ARN;E7X=%=7<!#%O
M?:3:C*7DX8IFEMN&EV-2).ES< $>'.A-YZ03'#8T;&4$9- IF95N&%DK:3E^
MC( J6D32Y6XQZL1(J)'OR$M=4<"[?G/I6Z;B6S$-VK*%/4KR:7JWU:SA1NVH
M:?S'2 V.B,Y; OX*\$M@/N0U3_4(*Q75=V)R@$$#03+?V]%^$.$^0&X3+FSK
MC9\.-;)DC&CKCJUE1*?G.-OD ^%EP!XC!<B%1%_(^QH[V"&SHNH)SL?RK<K<
M5_Y]4OC.Q$'>9/NE[@]N>,G5I/10]YI/XU:&64(&8;&;PEN9E86-L?*6^!56
MB_*26G#CZ"(.(:*+7OK$=0@95/S,G)S2QM"@ 89E J@(:2D#DO?.Q>D^:^L9
MQPH58.5H42_OD 3ASG48_"<Q#AH\A\.G)5S3L?#/KT00M((^N >1NWPA(^<_
MUJ$@L:AR*Z/@0SVB.XY,37JP8" I#;IW=?=6N16,HTJK"451SB$OJG*&C*OT
MPT]+HJGO"$8AV1V]@C "WC-UB]*K6P"%#!$:N7\?1/\-HD?@!@L$_]IN$O(#
M2-LVS>>(&.:=<:03=9@5,L1-;!TNGT!$MH_>(Y$70S?2RS2M'[",=MWKQJP0
M(^X A^$KD>L5;+-M,2W0Y%ED;QF@IRAP__P5^)RQ3+JZ9?QI*[E9<42RT]_6
M21C3%=U&5":XU&0G;,$ZCK06WLIXH6S_0:1_@2@=55,E1^2G$'K,,TUAQO1^
M4Q(P3'^:S6=QY 8K$/[F^#'X%2Z6-=MT/1^QAYD]ZF<4 4O-]/! AO_ NPGP
M(W@%**;77N8!7CG(!<\.7H#2)=9.OV4/._M7DY615/(:K M[:-!24<VG1,U?
M1LI&W4JPX (<6ZM<.FM(MD5JYZ-GY?-1UM@D;6TTE]>N_Q43A7..0G?_.$S^
M$W<)O-@G$S7;A%R\7_I.*#SF%-0PQIRK]5[(B*(HA07.YZ?XA8P^T,'O3\Y&
M<,%))K>\,3 W!;."#DJRVD"&K9CT->;9_)DLCT)B+$02X9EF?47SZ*$$;@4Y
MFHELX+GFTQ+X\P<<A&O@1K'@Z+*RH'G -@-F9P\A+ZN!B#XO ?GET059X4B#
M6U?'4IP;B6W@2>.]"U_XX&[_:BF,-0)J\I8/.3>SU4NJJ+H @<JRYB'?>H$F
M+Z>!%KLSW"3N)XEI-REH')KR6(AG6H%XHSB5WYU%DO3[E??(:LM;"W*]E&:=
M?FO+*TL/ZF[#, ;> X8N]3&SW_&V5;SR5A"CF91F'7SK(@;56Z*!JQA#M$A&
MP40S]^ '^Q/7)2-5V2[*-!?9RA-Q,K*Z 'CA#=$PT\V,B15>OP'LPK 4WB5=
MSRK6-)/6K%-HG0/.(UBGN=:(9A;8665A)8D=3>-H2;KY%PUBNP#;PCPRM6JS
MJ/J/XR::?DV8=<K,6?JFJ[KM6\R9K&+^*-6U@B?M);;@)/C:P31?<)BM]M1.
M@S^53X.S!B>DQ?1H>#1'PCNZX!T.<XL-?$R\V[$+)X3NQ7L2GJAP>"S9CC&#
M0!UNU8?+;:2TX)1QBB+H03^FP<]/P$U3$U^_N7Y,+)TNSFB\?)P 6*&M]^H&
M!(?6'7[1&"KJI5F9OGWKT%JBTU,.X6%Z737C*-<W-63)6:,R+L,&(<OU:NT'
M[P#D-J:5YWFUY4="CQIPRABK":P)7)Z3/^<]>,; (2O0=_:[;X#LZCQ!"(5,
M1=L0;"DY]RA "Y0/3]]IMI-'\A\^;*5"5D(D)R77 3_,L%FUR*D['Q=7,@[;
MKI9T#=1@P6/0+5<KPHR@6MHVCG\->*)]_R!033]A ;WZP@JJ8.HFX_(5U1[P
MVOK-2@\)5_C-DD>%TQ[01X-8'UC2N;07!V_;GGK;SL[.OAQ;[VU+I;3!"?'#
MP=XS^8S(/Y8O8PS<>J&LF)%JI;8 _DQ/P,LG(<G?>[UXWY9)4\(SS6S5@[P'
MWT&U?JLN/F4<&>M)PPEPZD,Q>^'1,H $O0':V MF)"%RB9)H[UFBI,>G[T)2
M".L<B-%&49K\:F-QY)A CXY6,@W48($CYQY$MXBFD:'Y&3@$*90QC@\-<"N#
M7R^BIF6L:6\P[+PB70ROF\51&#G((^IE6N7P0ZD-._G37@56WM4@-H79E,W2
M-VZRK$TC,LN^Q!$=G9^#\ER>F^HYE&O?L)T\[$@O>J]^#L]+CKFF;MF2U:J-
M>[Q6[&2<#B58>9VD4KLJ2W [^2(OJJ8[(\8,.J4SI\1$)"F1EMX/4HB$U72+
M@T^+;E.WL5OZN\X-ZJP(IYX'$UEN$4N:R+(W*!U,?JY([T8_^(%]<9+_Y(1]
MDQ38?G8"M]\=S3GD5EB6R7<CWR/PG8AJ.8Q"QJF7W(*G]"1;:GQM&QLZT5QC
MSYED6KIV[1?-^=-P,1EZ.,-)>M>!CBPX0LO<L8(#U'P18ZC2#\!E0M4JPR).
M" ]$17Y\ WA1BQ,?6H%$'0=>4W8N Y]\8[I>X^ U/>Y( XMI_T3YZR0K&PN5
M0.];L#3(:F!.N])C"&*L!<4M0%=5NFY#Z,5OX0B>PI.H9P%8C<6T(&M=R^@S
M _#N>_54KPT+CFZMBDHS@*3UI!DB*DWOBM#LJ#0#2- ;H(VCTHPD1.Z=E^3(
M1T@'3ND#&9JIR*P8M(X#%#^?G7WYN+>T4%>463=-:U7'T]Q=31!C^X;-HUG/
MB^:.5&C!!BSS%#P[;],P!%%(?LA^=_U&504**D/>!4!@#M-3A)).Z0$#A\==
M?,H\9G?#M#*E>].F65FU=:_R 7Z%Z3JDI!*BT51G]/IQE@4TS>67.DKK=@5M
MV]]?@G>K0BMC4AMCDVHJ%\R6!+OI7I'POK._+.]'E78F16^JNIU$NZ\.].E:
M\B; 7TE=WO*EJ\\=N-^+1NT,Q)69(^\#]$KVUB#9HH?/01)!7UCYW0?1?X/H
M$;C! M&<TVV6-4V^M[]&T*]*K4Q6WYD*<T]^LU_1<L=]FT9E)P[V,J">S4JV
MKW,U]5(/X MG(?H;T_<M2M7H0/R;X\> 9RY=?6Y_#:-7C?;SOL!8-A2I!MGB
M,\PT^!7SKYUW\*4B3%_.SCY_WB?B]Z#,E/-?#ISG*F_GQB3[XY43@<UHTHL]
MU/;B8"M#*CJUH_.#'>44F[FN-[IE:]9;%&&(0NAV:3PRGSY83._:S<[=C@YV
M0M5Y_:^8=/P6A1&.65S +%H"_+QT4.7ZE6FYLVFG56<.MF2 OC/K,N186_92
M2^T1G6RU_2-A*\UD=+'KO#C31E[C6Q]!/@CK#CHOT">=O8PQ17**O/L N<D_
M:N)]6K:^?TSM0X$9H0TY$I8>_XH;$+G!KUAG__C47"T92PPY-95FR2/P %&=
M1^P@O5EWB^@U.SF^\&H?F--$01F'##ESE.907J5I0*4<?2HJ%A5S3M1\M)_,
MD=5-1AI#SM@:76R699!Z*WM*)TV*RK@UYL>Q!;FVV.;W.HS@RLGNTI0*INI1
MS<!5>AJH-@,7Z\QDTYNTPDNY0MJC0VZN0VZN;N\(#3A:CB8WU\Y .>+K34GF
M\R<"+U/"'?T4U0L_VX2@AC%$Z@?^,MU4=6,O@80I)81UC".1*JC2M!#(:]8-
M?SKP$A-R_)J[_:5R8\%2@$0933DIS4+P"?BDT<44>=\<_">(R,_I@E((:%VU
M@N2?CX;/VJ #WT9"&Y>' 1"E+>FCI^ 5^,&::D,&<8F:5H+>5&ZS4BQ\!0A@
MQR="3+T51) NC.E[P3+(2]6U$OOFDG/O3(TK=.2NWP0;)O"F[YU!1RJT()7=
MU&>MIXY*GB>.PTRYRN:QKQLVE&G70C\6O HO>G A#.-5$AKU/:3'<Q>^X_Y)
M1H6 +NL##_@W ;YVW&42LZOH!SY5?XEAVY\)[= $H@GK$JV<]&K"NC69!WA"
M.S9A/3OX@\?C#VYJ])M O1Q)J.72TYTK^ H]0L-'(K?NV5OVN\8,KQWXCP?1
MG5ZWX/!A=)UH\;> @,IBNOKF?O'+!_9KUY[>5:UE_'^$X9\W&(!;1)96((SZ
M8G_5=P_<UZP[VQ[;;'SG6C2"/ .\TGYMOO:#MG.]/Z5IRC1DWBM^3_%JY>#W
MV3RY=#-U([+2B]Y5=X\?E7>/Z8<GP7R2?'J2??NP/QS7_K!%?HK<19V=>\>/
M@'K#R>\O \0DC!V?FN>)[D&T>4^* \7Q8735KTTK\]3:DY+$0M+WH"U-6T5B
M3R_!F&C-/922R4.17;E_P-!MO'?4UX-]-H..M6AG7ENZ'+XE.P[@7<683'^)
M<I@>PWQBZTP_O&R=Z@W93%4]RFB[N3M/&(? @LIA#N?:&G(IS<D08[)2)VSF
M^O"*M#+1;-M5WTV YP!&!&G>#?8.O[3/?->DK;:)7VT=_"OT-\3PK]B-?3:(
M/E1YR!%K[!,K>\9V+;K2E/YUS8SI&HUH^)=77Q>COIZO'^C?B08UY7*UVBAZ
M2>+*_=Z!^)ITIBL?:\+UI\C!T8'MW2)W,MSS#Z-E^TGQU<^VQZG\D?UDI%Q/
M4LU.D;>)! KHK_I:V,M^_F )W:C0SDRPW:MT@*U!NTX=#*A/Q1J6C]:0F#=E
M1?-"IKI]ADM'!VTW-W.5;%B2W]',:-/% K.3G%ZV/(W[8[MA&:-3PQ(=&V)'
MZ=1/<TETNB\J?>? ^Y:Z,BP'LWE\'F!+(_GU _<[T6!/F:-'MDGA:[3OW4B#
MGMAN*09H,[,:"Q].U:/=XMJR!^/8^>#!!G0I+:-ZQV^;#GX!^ '@>8!7#G(!
M4Q][?Z'I?>"S-O>!<SV9L*Y,6%\.%X1'>$%XE \*?#X]._M\;LUXV:F.+,@'
MGTA(/B-X0J!0QABR] -QF5+UVK" %LU5N54/\NC\=N^L@/!U@2X^91Q)ZTFC
M,^A=43%FY;[?78N)WS#@E#:. +V!6>:1BHK,HD)CW]A=SQFR32!8S]-@1RJT
M($-V8\W4O@JO?D*NW0"ZZ*-YMM0-MS4:46\P'+(0*:E=^)QWWY\_V-4@&CZD
MPVVFS)UQ*LGD[T1@D[5R8'.J[=_!WLR$P,HLO4VTG6S_DJ1!7<U15=\X&$9W
M:NP\.^_(SJ&3&,@D#"S="PLW09H_M>=4[T.;9J5B\L+%&^7RR='GE,GT-\W5
MSHY[BW:ONC#JOP/[QWI#=-PV@Y.=HW^KG43W7]\_:S%!P9K2-YEE*IWLN1(M
M#^;$*GY^SXUE* VWS0XUUM2 FG1JGB]+L7\'LS,3 DT)JBPYC[D/4MV6==]U
M^A*%3Q>!_'AV=GYTL*5NM:LWN945B=QJAR>B\]?VVZ>!NW:P->.TWWWJK<&=
M=K4JY-R[SUW'T>K#T]"?_3,D,U6N*S]7>[]%[T:C?F&S7R-2[]_!J,R$0%>V
M+JN,K.-S)JT].QB6:<K7E85KW"8UF,4<#*)GW>K*EC7^\R6[$\[M@RF9J7*+
M\W>U/A+?PY2J>V>(YF)@<1ZQ3D>_D><0WSL+-$OO%N<AZU31!CYG<;"DGC3<
M4T*SL:PAFQY:Y)2M>]6HH4M%Y,_.SK[LE6V9I/7L+JRUCXP=K$Z __'![ 92
M>V9W/3QW-GCRSDUX"M.Q:K;.3VVR=6X^G>;J/"3G/"3G[#0=TX"+F=$DYRPN
M/<:<A3%+]R;(S9DO8@Q5^@&X3*A:95C$"6%.35&>0 -X48L3'UJ!1)IR%XK"
M!9:!3[XQ7:]Q\$K6&W2ED"[4:/\J$U6J5386*H'>JX[@&\MJ@86VWW;H]DUR
M]C,&T*OO&:(C%>YSULK*1$U?<1!JIS'_2^;QNAN>Z?>FRRKSD >R5GF]7YO2
MD2+M8"O]*MK*Y) M(E,V'K3TWS<!G@/85P8OR:_ON<D,I."V:1M-3D'1A4J'
MRGK4O$-%V#^=G9U;=F+4OUTUT_DAB21'O?W.0J)!\6 =W2A44S9)0Q-%Z%#B
MX//*81[IWE):S1MM;V1(&,_@40:/1$T8NEF80:L70C^WB3G8=N3P0.@A!F&
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
MU_;-5 Z*;BS@XRN[[[N'_'RDJ9<4E_&&W AV)GJCJ*V''O*!Y&F*!B-37C0
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
MC$X!V&-7=%1-%HU'H+,U-K-%7/+%?KR85D36%(EN:EJ=^:J+W(A"B/BK8CW
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
MR 59-Y.M1#3:OBZ_;S'WYT_M/I?U5O3"C)M/$DV6E./#G*7V)343T1#EN-/
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
MT8)P*+%_/;[_(7S??&+^4FT8QLMV8/GN<O-;[J]__QE6]M!*-U@[E4TS#V^
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
M4-^;XX_'GT].+S^<GEY=?ML_[':Z&T=Q-<Z2&)<+BC(L4.03:U86KQARSG-
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
M!C^,)P19<F=<>T$/5A^%GV X0;"/![028XEZ( M.+ _$?Q*L@"[!4(I'A.+
M7W#XP^!13T"<=SB0T+^.5"?<I==@[G)>L-IR!G?,7SR$<R9$CAX F[H@4-K8
MOQBF:PNY)60.\ =(1C=NC*=;&$#_ITD(<$,O@++B.6,77XKDVQZ#00KA+@'5
M9&+9 [+(T,$E>ZFID>(&@$WS-XR8WG;%/ +7HQ:N&6&@#]@<XD[+QHS?,JN/
M&@=1* J3$6TL(CIPM.J<9#_1KS:W=$9BDGZ$@"5VI@W2EFA?'NO3+\@=2PXF
MW+1,K7"/12Y ^!D\DJA2T1E #D*R*^P$D)]=6'Y!MH@) 322$HV&^'$8>%$J
M/P(]!/$JUAMX% )94+XF.FCT 6H[;A\X$WA5J+$1\@Y0AA9?:N$Q;-=U[_-"
MMS8QH)#M)2*+8Y/?XK%'XD*Z/M"GPW'Y-5)B&]&(U )U2I__<?:VVCBT;ERD
M;0X7OL@6--'MC=R5T"VP'A!GDEL%M NG3,#UXX2D 29FD9="LYV?M01M2]L+
MEV<]-$;HT<,-+24=FA*>1? E,(4ZC5 P]> C=>;"=F&3:AQ4X3^ZW. D)%I=
MHV[JHS!4)6LTZ@@AJA]DCL,3/QHD<=4)QH)77]*W(,&XDG]A2^RV?WGZ;BCC
M1C9NY,>ZD5?!XP6)5JA+WKA.@M(L0E(O0SH!14/ #WFH(8AI4$)0"BBD_8;.
M191O 3<LFR%"*?G'14,D @Y@RY S%*0C:0U!LS3]BL,[P80+< ?0_PZ8,PQB
M#M#6#X.A-0"9R?("FVEG*)E6"1'ER4#ZE !/:C25J$A:X>&-:TL[@A3"8-17
M=%:/. E'_21.4C%&'1CJ4*!6;EA(UN%1 CJB;0U 5$/C5@A#%?8E-4']*  )
MX(9[.12M((QBZ^D8E=ZAAE9)+4N!?QU@,S *.CH4\=-74PL<C,-)[#@WX8C4
M$. 8S\LD6"$GP',4$'"H<'B&L3HBL%-=V%7'=!*R5#>-;)01X1M2A*8/"#B3
M>7 =LM%@4NU-JND?2H9Z\.S'+M#: ZHSRC%D(1!2[5"H^V-4QARN;&B9U0VY
M11K3I"4R(E;,,4D/B0.2 7)51D9IAP 2TBGHCLAD<!-X">Y5*1TK#A@&CM 6
MI\5'%)LY"6ALC/\BC:;Z&01B9ZB^4'V#'1"$T#9P?)1$(^G T/9<2&VFAI],
M!$+>R 3* 0L='+M4W%UM&]">PUVM=P;M0CO 63!73]_P*$@(CKN7O6K6AV#,
M;U#ZD,)GQ&"VR%@I D0HPT3X$@Q0B#XP%Y8R?3I"8?]-24_LC@=BN@B2;$-4
M?C"X4X!W2"PLJ S0$U6T;F$;8E?P=KJ0J)0(+6]ZCV^%3ORGH@#0%S:U.G2D
M.\O!7O 3]/*=QYE)*9)J FRI/-)(%]A$X"[]$KW[D@?R[%T!$+Z&%EQ[5@=$
M_K#% 2*=5#G2XJ9'T[F#UI<;[7P@"9<6$K$'NQ,F,+*6P)" _0"W"6>(@[%5
MTBE=@4WY]T!5GSI )):DNU^=!&K\:&F?(@AY>,GB(["0;&VH@N+H<_JAZ%Z!
M MV?+?"=K/KPM3A+25_C'H@$H7#MC1G]&,2;H!\C3E195&75])0*4<Y/G&J/
M6%?^=$*HX\W107U&)Y=DY[D;51!O3-_>H$HOD7X.?F5KC'@+TX>99DME>\A%
M?5=XP(#<2GW"M0<RHT5>])E:3Z6I1%\U\3>R:%[[$89B6(7 ]^'0I#,?>I)D
M1($A(L.='#WIV;'E<^0\%D[H"XD2H#.1 2QK+6)]XH@X1O<VBW.+!T<1JPH%
M0E .3EFR _69C:OM2M4S8PS)51HCI,06)FCR3%2#?A7DG_ :K?EB208<];4J
M2-8CC]%RDW\G!>@>'6SB._B@1O@W;*O(4>>L4'N]25D5_!,I:VCN&75D+^3>
MJY $$+MQ$F,(0PB[Q*EZ0?!=V.9RQE;!]DD(8"A.9<UM'F7F>(^--2_-=)O9
M0#5/6BK&5>"8BA'!4EM>'!SIDY-,KEJ_"BE(Y&5J0K#.DQB[2G=%)&5&8HFL
MG9!?PZAP0"09DW JA0 @"(AE/C&ED%5#.%7)*$*8Q>B[G/ Y"F*Y*9&+& 7<
MD) D_09 =/'IE;!EDQV)3E^Y294MB20!T6G69B8JHSXDC!U3QM54CLT)TLI&
M\Z @K>SF2D9X=8=;9,:L)N#QU2P1,_K2]"8V,HJG06B^NZ%[BP]SA%Z2J+"1
MQ?';#^R$9B1LCX0N*62D/4QX/*W6"$TI.Z$0ASRT&L,'&#ZZZD&JLP=^ -@]
M05;T7)X(^;P7V:';H_FFAU\TARXP+"^(Y/[)33?M5_P*SR2,6H*SUG-[8@$D
M]\AC$3KZSOE(*(0C-5/LS<?V4?6S/(Y*48\K%3!M574MFI0LEXJ(@I:ZPDJ/
M?.&*)0'D%9%+Z(HX%\ %$% B//GP;$6XP @+CPM/KC@FD 3W,DNZX="9:,="
MPH%V =<EE>"XJ))(+W:U,$*[.!$U<WUCLB%@GOO?=)0@8S#_VD7$PDVH3N\X
ML+]+*0 '#<U(>E\'@4.16K@'W9"V;,R5<9OP$%;3S0053;N5KPMAD5#G%2SF
MR(W1D8%CA<V#F^^53IZJVK-D0L\IN ,=$RCP05KN8>T)IV&'I),@MSEV3PJ>
MPW4&\ES%0E(9BT:2R]49"-*'.U3"IXNSA3-1>FM(6\;5PE@C&]J+. 973DB,
M<6,%KUGPUQ1DGV2O5:P3-5!;.23>PX'%0#S@T0R$3VNP8C8N693P>]S"R \H
M?0"!O0 68IJS89"P2S4X$YH2.8_Y-8 D26K,UE@U(Y>0-UQ$6.&P$L/*/-GB
M!R%W_1LNUEQ$-8H30R&%Z[B,#-)HW,3Q!T+PUK\3+9'QB!,6 @!-7F56%+7=
ME!"$;W\^.7MCO6#HW.J3ZH:*GNO_\DIHC EZ,ER2CV @BA-1%>& A2C.TV83
MSROS6+4"+??0LSYB$YI<+CB J$F>6I!JW1%Q\748C('%)'DG,P &IQ@:6417
M\ELG&*GE3BTI620(G.&^@^KW*VWYABALAM&T4P)V!2>S3LWZ<P!"=1(I7SMP
MD0/'! X\]8%HT<0 F"X Y&S8(:+@[%.Q*K//,TK,?D=LZ\P^5P?2[#<@L\X^
M1'":?2K"M?3X2-)?^#493%.+$M!,[7(9. DS 3B(Q.X(1?P#&4EP'SNXS_J3
M&3$Q$ZO(U!?-"I)Z\!#:'I+>WQ)Q %>^BR%DQK#4-XD;E_ ,D3Z*DN%(ZMA*
MA+<9QO=DAP:)+- J>NUXSG=#@H,PZ:D]).R2ZIU<!TJ$'K+O$GKOGY0,Y,C'
M 1]E(?/_TGD>2(\':#_!<:5$)='R%J3HF*(8]!-3G#4!+<8U&5[I6U)R,WLR
M48S.M(KZ :PE*C*:3!!% 8ANI.LA] LA40HA1*+\27UG$O$<383"95))U><Q
M&0CZH,<K4VVF3$AM 72P$$.^N>Y^G?1 :4M?B ?P1JP-95?=86WC#C/NL"UR
MARW*UUE82:J\#X,;KF2C?DBTD;$H#K=).T&#QK1K0!/J9VW+,_JP//)2=5@+
M[P 5X)JD7#@ZA5<HB6F/('#"$/ \",)495 1+&G@BV;L#5 :1 .Y '<YOTQ#
M5K8WE%\ &GU7V"5IHF0PIYF.9  _?),SD2Z'OS) 8X9NRGXF5%-EJ4?UD)3#
M:*X+B*$;X9HK^2VDF I)ZWPLUBLMP&*J*^62E*9>83KFMZXP^-&*9Y&#8M;*
MFBK1'\2WQ$N51$]HN%*X(PMK)!>)]/0P\&%YIHU6+KIAI'@*!R%^+FK,(NHH
MYY>CX<LP)!33X?C'N#34&*>5+8<<CIE;!K]6 F\Z/HQ!N0;&$2HL_(GB0BHA
M:>[E5WI$I>[5DA9P)"E75B&7 "CM6A[6KW1[ZQPCO'0ELM383]HPRF(@3B<Q
MO/??+)8UM::CL*FL+R17:=&:-U)S20>@0,S*-A6J 3)*&Q8"E!Y0%R5#"A+
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
M?4>.']3::$.A-44KI$9*"2@9W-<<3ZDE4Q8M% YV'$C.CZ%9+=.R5STY8I%
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
MH9GM20F*ZN*!SX$^T#R"@;(Y"UYW[^=R0EK6XF&M@WY0T I%;O?1P'4<[JO
MM?J;5W,GH+:F#T1=TI5,>UD*@(5/I[[$9'1!O6B!;;7+L(O*1:-NM NC712B
M78!$J@"FT:PU.FI2KO/;WK=ZLW-H-[OVM^XAM[^UF_O\6V^_[GSKM[J'=9OQ
M>N>@M2<&HG7_>$K79N-E.K/Q,OJ0:XU#/IPSK3P3++(G5(NX$6::HZYK^]"5
M:+C3J65Q.(3KBD,H8-BJ6_6,C"?GGR_//YZ]/;XZ?7O^Y?3B^.H,GGSKM-O=
M_8XDWZKQM;< N.8]>/JHK6S8O[[L":Y;U8+/"9#:G@4OTS%)D3M+"RN;EK9$
M"1]-Q1(!>A@G4$G=$T(1B^B&7@S2=BKDGY<IZE-%$# @7YBDQ<T;&-2'H5_\
MUN8 XR.ZS$VE:X@]@+JJN-I%?24DZ%^.2DFS11=YB6!',3X\3N4VP8-$WJ^6
M/[KK69"?/+AGQ:@X5+UJFVY/#P"<4DL%%JB]MU^K@^:J464J7%#;[5K[Z-[!
M2V$43=3?5321'0DY9PQ$>%#$T( I?97UR)$VC3MKV?/BQ4<*[U.!EW?0_:Z0
MSF:M8U:B%"O1K77WS4J4827,GBC+2G1K];99B3*LA-D395D)<TZ4927,GBC+
M2IASHN"5H#RB?![:DQ2Z39M.NLL08Z6@\&1*=._S/SS:. B$.*Z_FOTWM0XJ
MJMB!AZ3Z;:^U]T@*-0YK[=3O(%+21K?H670=2YGRUD<_LG#H[H V.J-T_\WR
MQ+SD=N [@H"_)U0;5OP1]&?HN<5<MF !D#OX:G;#&=9ZF+7>862S(.$'YO7G
MLY5![]+NJ_O=QZN'[Z?H'');26EGUW86!H\7BLX;)->V<EF]76HN:]4..LO'
M=F!XE$$H@U &H7: RYX/0CU.B,R",X[^:=N<]_NEDROW7E\%6&5"YA!&16/S
MQDGPV&U3+!2OGPKW;8Q.K?E$_-7GB_<JR;P<J]%LU>K%PO*F&6AQQ;ZXO2.A
MM5Q<,W-H/TR9.]FDWJ[M&Z@Q4/,$J&FV#FMM S4&:NZ'FF:]A6Q2B#RW/FY(
MTR;V%^>,DR"*Q9T\JQ'EGB.8ED<G7">R=FN'.Z5:EP9E2\Q.14)NI]8QX&/
MYU'@ T?M@0$? SZ/!9_V8:WUG,QW[ZFHK?B=T:B-1OT$Z#ULUQI&H38*]?T
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
MI>?8(6:)[YA-U !9F8"LW<*D/0-D!LA6"62M@X+E\8VC6"E$]+)-V50B,+G
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
ML>N&7&U*\4X3.,D%(@#%+"?A^"*S^@F<%]EK0M"CK8V-T*^.[1^)*Y1PG/C
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
MWJ0YQ(_^8DI&AW=S6,2YORTMAT'#NHF3\Y_^$_YC5A:E6A5H)LYE^ZW)A\?
M1N)H./S^3@R[9@_F\9XSZF[53'BTND+Z[[__F[]29^3N1'F:%\^,)>MMP9Q)
M9TQ&[9G>F<(%_[BC9C#+9RJ]4)>E\==,!F.;CO#,6L.[[!693+X/W)^XCI5]
M7ZA/.][NB@F]D^I9]8Q_93XBZ]=\EC,E/RMTJI!8<.S&J'2$5;Y\-@95]XY.
ML"5O=KWS4M<<5C O].P?3_[CW9N3KM/ERYSEQ4*EC<LL'SWYZ1W:Y$CD)_!M
M Z-<W83"FYN^LIO :7>$!D;CP6C_CAP:&])<F\:FQ^C**W1^6BM+G]>Z.OGG
MSR&H=)^J(F?A\;]_G-YPJ+$_U/_4()G4GWH:!G^ O"F23S3:KX76V>])^M4%
MR%TI0E>COP:WD1VL PT]'M]P-5PA+>B/+$EOY9L8!"\Z)LQ'B"?(_UZJA-09
MT$DRY#ZL@>AB0:H):@A1NWG &9PQ[LE#.>+;0L5]UJ'O-P7[: .*[["M+7R&
MXMMV8+VZC6*[;G8X0M.40N>=$G,/?XY/Z$^ZB)*2METOEFE^J6&Z51Y]!"N+
M.-$]5D)O 99S<^_GOF<>^QSA<XCGJK%N23,G:Q9H><O-*:K*84<UWH]AT["_
MF"?1O#EK3QCA"]#JD8>)NE21[>0UR+BB0 N>C2@5144MGBM5&6N+2%!Y9@/.
M$+\K]$(E6<P3A)<[%1_/@Y:'KS &Q2S-+]AKT.7MN-WEDEMTY=:V=D#Y0AR&
M^6_X,4Q?%^RE.)TGRW<%Z,3;?*UPQ",,]CR_:9!$!4G\CR<?HH/I-(['T8?I
M="_^L#>>Q1^FLZGZ$*MXLC_='1X<'NX_8:714Q4_?]$#IQ<; VK??8+Z.#W@
MJ9>#T9%>=*B@387])O:+&1&-EI7AZ-6# VVRJ/;W!T-KMV1YINW)!*H&RAD&
M0];C<1M/WOS^^ZMWO[]\_>[TY,WK=Z]>__KR]<FKEZ?'KU_\^O[X[?'K=R]?
MGG[8.Y"=]$RO+8G1>PL(@\82 EA#X!9A0\UW10VHJ-Q?<MC\R7XMR7L"&EQ2
MK72SVII%@$6;&V4:-7$53'6%C+]&00,V%:OA1OEVJV&),,M3D#+X1)+-T$8F
M<9"43M=Z"A)7Q!2)@1A^H8KR!Y3$(KC-Z$Y,Y5-8E&+1H>AG_U6GE\'N*"21
M_VSS6_GY\H%NUDW% X7T[17B'(<(=V19ZF?F#W]P]*'(C4+O0<1>AZ:_QLN!
M$&_-JN^L*LQ;O?OYY*:YK[L'@Z/=JS+N/<;@C9_#F*B%F#TQ_Z;LAV?LW+J
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
M*Q;5GI)"RL\K@<ICJ DR$O%B-%0D,X7P*NDLM?BL5O,!A,U:=%3JJ6V*M*W
M0%A*6\]-QT(L$JL1)9%U"/G)M*9:S27U;\E*AQEM/UD1QLDZ<YE_5K)9B%HW
MJ$"X0WB.>+;WPI]P7%FP$;UR#'15"$8!2$QQ,-59TKGM#&,:NU%0TN%E^PC9
MSF1>ITJ1XX!P-2S[\9H-:C;-9JG^E#C,2@1<Q0!G$GT$VI524>;CR;]LG9_E
M-E998GVH]-P5*YP,+D*DZHI1@<L& "=MF#"6[M40SJSOL;K0$DEE)NE>DU K
M/Z.]V9F:7JAS,/F(_P:@5EP0=@A><<VPKC1*S"JU7]1H(%O8RD#TCAVXJF6.
M+*7XR& 4'EHE7!E0[^X%N;[)@O^">^V"YY)M\?Z_ U1KZ.^7-<*=PUCO,UOX
MB>BHW/V"(,6)63/_=G#D+/&H_R /5($2/YN)XEW#T2-\-F\H<LC*%DS3WU-=
M76CM.G<4^HQ+?(%A+Q.!%&Z],V0[U"+9RS1)"- KO#< /;'/C!5WE%F9+&HJ
MX2F"UF*KH3D?V![CNVKM#DE9<NZ)1".W1YT*3*T;CE!?) WQ=4Y2.0M>(8_.
MXI9[1-X(*V!,>H;;N2Q!L-"@5)-;Y!G<>K.F[CWE%HLB(YR=1'X7)5TL@66<
MJ3/;.JOEL1"H;,E3,7@Y)<ALOV:^!!%-1[ZP);\H^-O3-'7Y?A6L$V'LR**I
M"6,\M\J$M#^PA?9@71:F6:-C$V/:1T*'H1"DJ]%U/D%3SUQR37CS'$)6V#QE
MQ_FI$HP%LNFM2K8#616P44ZQ9;T'1;,"EEMRLI'9AC,2]Z=S-B%E@*D+DL(3
MZ!,3&+.FGK9 $!ZIOSO+,>_F1I0:&B_5EQ)KR,J/->V[SM9KE]-UU<G)@5N-
MHEX<&F$@;72<=S9K>67M\3<(F4UZ0PTTB *YMM*.[CZPY]]SOXE&V)1IXC'F
M/;$9S8G7F,] F%]&J76 EQP*3X.,FM@0Q+5U0:US4UD:FA5DVXG<"UF2IZEQ
MR%SW)O&'HT?%.KZ)>GB\DA@,W(1?!(V;/=ND,R,@F/>"=@];'F7-[(72FY/W
M(S3&+\R- EE9IAN'7N<&)3\EAOM)(2\.?B[@*E<_A+C;E XQ<VEX!0Q] =J[
MO8VK_E^&? )KS7T>VEV3TCB1F6%PK@1HP637"?B";8MBSQ"O[9*F@QPRTJ"B
M(9R*:]2@\/[NF#N)D'6LBX-RE *W%DW&2$U<C!T2/;#N36<Z/RO4<F[QK!#Y
MRW(,R9LP0&I-2<TA #>6:3MM.&UG(YJ&.0/B;^G%GYQ9C,F%UO,>2GP@+\[
MUOF7U^IN29V$@:1 $OQ+9R7S68P>Q6T36+B0KV>N! !D#U>\C&B\PP591YI-
MO19D0$*8C(*$WA!R#)_B=G]-T 6Q(A(G;'@>#*/G5!G)!8ZH:4YH5K-RJYH#
MM);(W17<J.2FN&QSDRZ?-UYHMX$"L>.O%??!1;!B';&FF&2K^\M'(UD][2B>
M65>S1^>]$@&OC /:0=/0'L*]2^"0=33/\C0_(Z;(FD-H;!ML6X(8*[H0Z,E9
M07&^"A3="]N5TN@G[F;H;*Y,BGC3&S57R-LTHM:R[M#5F=+G\.Q3V7W>#',@
M#\4YPP9%35 FLYQ+YYT8!&^:=[= &8+R )E#:O@S4O09"8E"W.O<2H #@(HL
M7$J<)DB6')@6OITXH-D)UR#&<!Q$Y.M<HE6 MS5T]XIW2,>B<)D<9+GZJ8HX
M2P^WJF!]/TKS.C9BQQT$V4/HS)&#\D[.<)#2H&T*,J=DB*2IFG)/&K8"3/MZ
M((5,0":582KDUFOJ$\B.ZU([C$X.F%XB&0(G@(N@R,XO8O80JB@";9[>A]K/
M3I7O4$O&07#2O3+RK6EJK%$ZM2H#>9T7'VD"1"Q(: 2O@T:GR7,_H_>TZ8%P
MNU0P+7(%*@1>1J-?95;H^^]/$VJ60S%K<@)V$*QQV<JM]/85Y8?1+OP4_D5M
M.BJ1N??@8TD'?2RICR4]_%B2==JX[E)H-Z-]BWC)J'\#A;+LJDEQ1I>]V#-+
M!7:#L, &&Z4ZH0Z.7N6$C^U[;=R7R_S"[Y&E/['F01J'>S[)"/BZP:?<JVP&
MC)D)JP@)[,4]R1T\)BQ*4D)"WR,]%PQCZ6,DV4/6(>12O.JE:*1>VRC+YKGY
MO-/R*>N*H/B,$&*WDJ_,N29W9IQX!7\<'V])F8H16"KVL7$*VXI]YA&>9\9B
M;T[)_"3+&+@KR%TDQI93D$O+2#O'9+ =L U4&LH_A+*,[&5]P26NY5%-ZJ&E
M,PJ]@4V>DA\DGV+0 2X(;&6D?7W2 R@45Z4WP4;8$3> I7%H/R$&T])E<(,:
M5*L_Z:AF'XGW,H/VV9B \3(8/\24-XY"<:9X#UT/J%FX1838I:XL&XW[V,]'
MH'WD'^"&@S6<Y;(N@*VAW6MRW[1I=E=&V(";8GE\@*5U%Y/6[RZN-;)@%LD,
MXRGVZH=M ]:?*$C7RF /EM%<QW5*KS,]&IVN%F.+A3C/"W]D)FOT/J#;Q14X
MW MF\&<G7W9!)=1.EY5I+%[64^P*)CTFX,*9;3M5ZM1S\8$!G5I+W#C)+ECQ
ME-Q=@W"?(D\&EK(# H":CDLD%=57#(OG.R;VQY'=C(B9;F=F?(FNDX$)F)'2
M+BX<VRK6-I0U,^=YVJ; 7"<Y5^FL622YRQY,JS5;UP;>/FSP&0>3H^^-XZ/*
M*\H(YF="AQYJ&K2S+2-S"7$C@%9+GFLS"944:.=<^+.#5P./*5>BC,BQI1=O
MWO LKRP!7Y\L./<.I"+,99%7)MG.:Z#\ZV^O@Z?,",CFDHOHV(\=^@?K=%TD
M9ZX1J>.]+..I%; ^4]&EV0F1\E8D2+#$C"M?*[B28-!@/%]SZ\&,I6_E@L1F
M_JTHL3G]1N8ON9NPT+>9GK@$?8^O_+1F9<'^@J@:MG^F@-]X/F;<"QL(;_G
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
MG[J=\Q%_<T,NOU;E=QY*G->/N*4_TK'T%/+(*,14&P'+IG018Q-R!!8D&AB
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
MLN,3RCI&#<^6")RKM!:@%$L5GEA!XI/KQ3+*2P'&GQ- FFT<9P_.=JA;+?3
M.HE,Y\R P:SVA$3,Q89(,B4F6\,#=6;_%25%5"^06YAZ&%K4]+*!!X;N1UR3
MMO,1T5 A7 _W896=0!0/?SNXMM$Y@&"VF9XEG/[<&LV69WA,RY":T?Z $5/W
M/JR4P&+3HO,)R9.@_IPH;4QY6F&@.*64T,N/Y3H"!U@H'0>G";[&J)H-'?7&
M.$';WQ;R9FHI@9(9/=Y@[3EFV@SS(<L4H+?.BC[/]2-MS]A;[<&,LF1J:O>L
MYW7A*TC:_E)G91OQSD!&($J.,]Y%WFSWR;"GPBLJP%OF"7AJ)XR%K"2?137V
MGI9%(O@C/.H:!CNI'WJQ5$H>KQ*J5\%".6R7ZI5V4)];=\ >C-V9*@B2#DG
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
M6VYX8.+1#T>DZ8/36V#O[5@:::">F!L,=W0 =TJ884"T$WC+#D;XN>.P-V,
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
MH)A"#[9*ZZ2.ZFTH R,*HIQX#5ZDA0_.3UZRW[=M'I4E6@]KQA;V&0+W\/+
MD_KH5\P#&"M18^]W:NRM =LOPWYDBD4<Z(&)B48*(ID!F1%)A,!CB;NVBI$E
M=6U#S&Z(?Z(.+I*B2(J(Y2'$[0Q@C$4.JD+3VC,(7KESA<S<+"YX8_KRL/,"
M/6_A.Y*C>B1OD;R!O)78*<I\XK"$HQQ=H_08[(R[LM0$M!M;?'<2G,04EX36
M*CV?\H=F[B1/&^O 9*I^0<4?YL2GM$A((R%]D9 >A-^XH((C&C_F 5'CI\Z?
M"2WY!K#?,JY?=+JKB^0<EVLFO]H-Y+',B>8QU1Q.9!!L413E(;E\E/TJS5$X
MSWTN028N" RMQV%.]Y/27N.'PC7DIS[D=T>S9[!42.WAM*AIN*2\JR#1P0"A
M7!>O92[0*\[48(^PK""CJ$%?(.GGM!GS)4;/9NR,-/956%LQ_ 7&H/CVR"_?
M7I2+VHNB]J*OWEXTY"= @SPQ$S= CDJMV(&=)(.LK.^2QY0GQ: #ET7&)KPF
M[S%T*F!L?5RLP-65@Z_#%WF<GO ;S&M!^SCQ2<RCY,"CG)Y/([:6&DJ^.=26
M=<+E0 GM@ C-LZ.3B:I3QES;,2>+Q-B?GS5L<NM /Y"-&U6A2D"):6&BU+1F
MZ$V9FT"G1)WTG4 2TY\>@;HKK>$'B[9/D@4KR,S(A'X$73/5-=+%Y/'6XE*[
M[=EUCR2(M$W1634\G,>_PS;(ULJ*DUPC@U<QP&3QT U.Y]-4O@+(JB@PN\!5
MR4CA5SGGEG&1CB\'M,-?KF#W&*<#6S5X(=^!%/R0/Z6IV8M .1.ZP9Z.<\Z(
M!V@XUW3R)G-55FBKCDVS\:2568Z'] 8IR'[@1/=1!0\W1\=C4D,2XS'1UN18
M6R;0I5AH>^CD-X^)*.+#W20,&9]T#OJ\(;#0I!GHZ5W$:51^\VE#1& ZR(>V
MQ(,[](06[.D/$,Q@4P6'\Z<Y&K&.*2I.Q('%HH]),?SC/ L"G-@TL$,>:FM@
M1.>PO]&#E)=GI',TSH9FV"WIHE-H6/(/PCY%."((N3$NC!J8)1$>S_0?#]89
MR!#X@C(1[F,78D .DK8I>*H0>&B8#_24(ISF)*3'E=A#\KW4C\2A$L2F;'":
M /K^S*AT\FUC==PYA66$^5ZLZ$IP)!WDQ#_:(/>,>W%HY$4;1>DOO8DY?"T+
MYVBK!-I*./RS;Y)GT'R)+ R9N?0'Z/'5;:1K*J:.9;/XOF7TJ6Q9BPA\.:L]
M<EK!L5_ZI!]>5HQ1@M"I=F+&#F?*#K4[RL1&BL.#">%]54D5"3H_(:'E=9?K
M&CD8^P@O.O-GX+RI;_9ZG@*NG/PM$KA(X$#@RFP0>$^X2M$A#G=40S8-FB"P
MY#';QB0PT) 8B5(D2A1YW)BYV-F-90MY<-*WX\?43\1G*QR7DQRKWS$=H&\\
M\/A\8'"0@:6UTL..Z4A"(PDE=77O].D+4=P[Z 6!9$GO'@J+=#X:#,_9H:CZ
M6,(C .-(_IYRMFQNR\O VHZ,_D0'<$ X(1+QB @A7E<T]& 0;X0E$R)YB^3M
M0-YN3)RQ(L2X5G!HECO->=.J$"_(:"VF,&4;R5$D1T2.&MADK73*MDV'^?;0
M@(XV>@4<(8'9UDAT(M&A73OX[ 1@FZRZ23O#2#,$'J+4V2@LEWS3Y2UK\)AY
MHXQXK@(@%3U,S*5?K$3R%P?\+YE:,@!Z7%FF0Q(ID41&$DERTX#.RN>4(]&(
M1(,0 A H2(7!#\)P._JW1V-."Y6D#L_7 UF&+,J,17(57@YCF*8P?JZ0F5^<
M^D+OC'$^\!B^MB;E<)]G@@$[$[3H@_IM)%Z1>!&SA63*Q%5-C"!@XFZH"> Q
MVPX'=P0X!*S<&/751]+#I*=%@"UPM9Y.WV+,%UQ8C^&)7NT,>$K>L#.M<HBV
MPW--<'!-.D%MHPV).#/G.@',(:ZYQI];YAN<2.Z/H-.3>&6)BR>TH=Y2T0WE
MSP L_3W2E[=:-OY0!9C0M-?)BCG[%>&QU65M&0 H);\A[5VPB(&:$0;*=@A
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
M(C0.P=0X$RL52BE!4)*5@D\X+*GCM?+[&71<\<$93Q1,CV5;BX0L$C+?8(5
M >,A%0]3S,,F][/KM#G1N\2$7[F17$5R1>2JJT[,F:%Y?:>TMD*.47B8&G")
M,<4H+N]$A^U(<*C@U"E!^R%^]9@5>:!<Q.!QL*WBILN#X%>D3SA0WB9 MZ12
M00;4>8S2!U>9>>UG,H9?C.0RDDM>+DG1#C/>0@O3@9C2T4B=XE _T7,>B50D
M4B!2E9"66+]M[NEB[C,"]!7[XS-"U!\?]<>_57]\9&*_DXGUY[6AB<DQ)PLZ
MG>7!M>-S(VT\B3QS)#8@-FW@= %''&C'XL#>&=P3@WJ/9">2'9"=$NE3!Z !
M-LU/DR"8,]$%6. 8;HU4H@ SDINGTOW8,]E3GQ@2HP/R[?::$9*@I>#!.B&2
M>6HD@W3>XMO+7I$J,,<2L8E'<OD<F[BBV4A6;)4.+6BX0Q</89X^K_COM<+K
M>(1@-@].]4$_*8W@U:=Z+..!09A# %._%YRV1N+62U N!D>'<>R@/N.17H0P
M#_FD=/@1M,E"WY-?0V*3#&]QC%O^+&QMZK\.00C2S6V@!39.MA>>8PKT9#8;
MCX79+F_4EO2/X_$ RZ2O2=B&CC%1.((8_ 3P!>9DXEJ$[>\%Q'JTEQ<]3F#X
M\HQ;HL,II5:P.PY)>1-L7O3./N?YU))=Y2RZE,L>0B.20-RQ;= ^8)]WT:,V
M8!"4E%PSCGD'T"8[M,^?]BG#*GB+ *L'0N0-(="U]*CB-:X&CA;!(%5+;WP#
MZ*R!0#3.T3)Y="MCF,15#UDN"-<F>5Z"<!?G]@=/*.%KX?W@.<G(B+&/<]1K
M+AVJ&@/4B.6QSM'=)P!)[#4.B.0 W1._5#R,@$<^6$O:(@]L%YKA$6UP]/(3
M__#*3VE2P!5%A<$.P$KQ<N",_1M9-QUSXK%9M FR2DQ7 ?I:,RU EO3 2$,D
MGDV+,C.F&F!X.5T@'(G<N@8% =8'/;I!.7$8J4K,-!*$_-N'I6(C(QY?@\$1
MJ1^)(RPUC^,$9@[/1M-7P5X1+B*8B*5_O,$//.A+@%')G\K_^-%C\%OP>&OL
MZ', 9XFK7L Y.-D3O*I#KB/O[QH9PGK-*\#X"N-MH?B9,8O@V0!('8Q2<42P
MW%@+KYYL20F'XI[#<S8,EV#-PE-I2^XY..7F26)"Y?^XE84,74//BTJGW7%E
M[W@1>08D;G*/S#:;3I 6"<8#?=[CD'%6RDJA*AK6(8^X+6337_R$3PC%D_MV
MB/!(# ^]2^CZ!J#AR%(02'&8?8)JZ(221V'+3X>;<-NC3(F5PFX;IQBBY%:!
M(1N*7DV?EPM@R(&&? Z\^AQY0I71\P(-IS%%II=B#_OW4?EQ*(Z**<ZP%WA,
M/K;&Y(ARC WB^//Z@>,&,+AIA\-B/CP&A3H@T*OX*;&3I"W$O$B$2(-/I(P.
M>S!5=NB7R#%(QMY,GI"[^BA5P3T(B@+000??D$T7^UPN''XLF^,_M.;^VV.\
MO4#QDD/8H\\\15:!/!J!MP(4@15!G<1+[F-=0?K5'^70:9=: )7Y?(]P;4O;
MX.WR2.1X- ,9B'$=1HR+3L+ 58//^Q@=!30>V3OOU,VP*7#?'\.SYVC<X+Q_
M4"H,PGA@):04%K0D#1 7 +,8L&;<G.6GG"2+?T*:C-G'CGAWX96!42%.2 DH
MIAAINP5R=I[!C1-H&)</L*RRPXT60/FH (Z+'B<F,$9W 2:6?#R+V-A4/+BU
M&7'+W$$O0%DO*^;*(2RYVW !"CPE>S^P>OPK$E^.7I&Q_N$S";*F%*X/'!3_
M[MX</VU"QM/P#.(.4TZCLR_RVD'V8D '\M^2:W)@.+CX<8@N(&MD3O /N#"[
M\J#S>(0;CRJ5YQ'W$ 4!!8%13#)M08L4Y]%9(?!$U@ZB"F3[I@D>S9@E6GV[
MN]+EB<K?8.Q:R(3; ?31$,P_C&OJ\(!_;)F"F*6M *X!9<2>4- #S)0BKUB1
M$\ON(8A,+,P@XXT+DPMRM/"+%&05.7#_@.TFW2N4Q/O%WW& JL5AQ_JCRP<F
M1R4^YE@M_>:8I[^.1],U [9J"L!=D,[TP&09<NQX[XMBD&B3@EL<K;-I'8Z%
M!Y%NZ7&"DIVCSV!\';KG/%[B(6;O$RB]SX#%>L_DH:E[M!<,W_XE5LV#,_/!
M@ +GHR!J]W,^Y,=QQ\47ZRE)1CTE44_)&6$NON%!M3]7G\NMSF6O&6TEVPZ/
M^(XA:0U@^8(CS(9,W_K\P@!G/E;]/P0!ZL[@>-E_>?YYK/( ==SL\2$L'Q"H
MXT] C(VYB+&Q]F$JL/'=FRY-V6.GM3_^QBTF?<=7;65 &V)<.'"HP;]'OE'A
M 5X \>+)[R.1.F'50><1#2@A*#LL)&EMC'TR8;F^)?;+Y$GP69 K)AP^*5TU
M3QH. .6/>VX"."N!Z25RKL+X@29^=(KWP?B,@S?C*'H)8@T']X-/0 Z%:R1>
MVJ^7^K(]U4VH320 ]9)^!BW5EIP=*4PS9!+0X]BJ0W.>## G,'R.5XVF8V%5
MGNDYPN'$01_H,VL*QT>7GG<H[IUK'(!J^746B@X(.PE,2.K>I$Q$'F 'P^;V
MCL?P%VV,L]U!P8[P/*(J\=/S/E!'I!!_(6@T%,.7E4AQL,#X(%6J3,'"(_"B
MV'.2_O7(NN,^[/PQ>D_42Q-)XV$/EH7+71CMWL<5]=.G.*1;PNCLF,M$$+94
M)EWH,?1]! <1"5>(<'%E)%HBQ2Z>A@@>?9^)CA!0H*,'FDB4(E%B/7\.+L:#
MKPR2Y,K66',L2AN",STJ?IY(<B+)(9(C&H:)0=!][,L 6+:&_KSQ/5X Z @&
M]>G$_@&Z;R1>D7B!>-4.,&P"D"-FL!_":T/>:D3:,%^[&LE9)&>_EK.R3]5M
MLZ%IFY%<L%X8J'K@[B'<6ZKB27X?QIR04![CE$<2%DG8DT/67%:-I"D("#[T
MK&FJ=QE7I2:91]6:$6I)<TNZ9"))BR3-D[0J)1\\8CF)QFDB*7ENG,:&/DGG
M3X=IBI\Q2_/*^EIM^F3+9;#>I2!7;P=AX./!/M$)Y59 C^7@6@77M#C19=P8
M04ZON,?$U0*4(7':3J73?F]X),P/8GM=4J1IA,*9R^PF]$OY;M=CL@O287-$
M%@(>A745!TB\\=OS5")>(Q1:"/0W#R3RB]#-560-]W+IKAJDB/;Z[F5CAFD[
M*#*83]& XHBJ*+8#C=RTD*GBZ8U 5(*I02:R/6=\U/ANYD2#.AD<- ^_"!J;
M- L_S#E4JGO/S)61A6,-/XP,UXO3?-X*'_08?WRNK="'8.'@(*T"K8\A0X>W
M5Y;U$PVT%XOPQ1KR$IA[H+N2K2R48N4E?KQ'-61KH9G?1C? \I' O(RDIY_.
MM4#?)<O1*[CM:>KJ,3S=2HJ\%N8/WY*\JVQ9>_QX1+"\OBWZ1;*#&\ILA\XA
MZ%#:C:D;VF".QX_\W8=N1Y@'\KOCQ%XIUC=7VB26S@F)I)!(9^/>H$>;QB7Q
M6%M'JT7:X20DH!#8_(RU-G@45]W^1.9D;"/)Q6K>0,_CDLX\;RH$;;O_'!!'
MQ\ ? );>(Y9<W 8 M3*Z*H0,#T9/7)B5H&P.(/I3W=S:'I4C*!#A\2&+HE%:
M&&<N&\%%1%OFXH7@GM&KNQT_'RENF[1G!/<P8$I-;A_\#LBCI_L1JY!?39^T
M"L=BPQL [GF8II,V2V(35(]8*[PL.?6YM"@[,VW8H.X%[G[(4B9/YIK*>BQH
M#SV*3:?(YM&+/K7QY0UM=>W8-U.O[8^4 FD(868,C!'Q6TH-DX$9('\E?$]\
M(L[-,/"L/=3V<^V\KW(#,]-48.KH\\S_2TW^4&4($B"V_I,_:ZZR@F^H:IXJ
MV?1WZ7]B578?;+7@>,KL$?,@R!S@"0]&8V?,X 0%6T#[1KQGP<QJR#:II*>4
M4\XC"^P32^$.UYD!6])")^(Q^I:TUY]IN^$[$'(,S__(HL7$7B1!FS(A5&$Q
MSF'P@.*&O_ZU'?1%[NIE&^#UR=)I-N[U\$NCT^*<T"7^0OCC9"!R":WW-#O*
MHD;2C*4]TI[=L?I*-<$+30U:^%/& "OZB,'-<S)A&L%2NMX@UA,='M_9DL(=
M4T?!-OQJH['IR9]S34%G#AJ'"L+%/U^^U3H5M5I'K=9OU6HMQS3E?_\:I0OY
M[$3-%$9*(:V.,N-D9E1456643*N9=&$J9-1D]B_RK6^SJ$=GHZ"1&+_ 0AQT
M85]*L;+4*XG=OM2+]>YZ?:G1BU6[K4$;6091^*?6+"%S-R;+1EZ[U&J6I69/
M*J,?>JUZK2SVI?*%6!>;):EW*4G]WBA7+&0+I_WFWEO$^->(T?>(D1?QWOQM
M7H)I*S/*X8:?)E^]BW:8?UU38LP4_2$(QM^#7JS<JM?%;B]6:\;ZEZU!3VR6
M>__$T!]P9@/]T!0'Y1I:CO_P1I,*?4H6INE"6AG)F6(1"7UV@H0^.QVET_(D
M79#SV5PN1;>>?*(_&2TZ\NYA)FD)P5WN[MJ]1K*F.YU1<G1TI9PN:!>7HX?F
MH.3FUL6!-K/N:R*Z,G-XI52NCJT+O= >J'IUN+NS;]?UB]DH=7S/W=7.* US
MAKO8KP:#I6(U^H+605<>W7,QNG3%3:IW.[@NS319&JZ*3F8V2A]?615N\IW,
M;5$64FXY>[\OWLVV)7&4&0F'5]Y8=L;-YTM(P<87JW(B5T^8%7&4/;Y2W.7G
M=\9ELBF5-#O3O4A>**N'[2AW?.5FN93*6J*8' P7EP^V<GE3[6;%4?[XRM6#
M/%I=/22OI%QRNUN9A<;UU5@<%4+NF;2R9BUO=0>)W>QFJ]2W@TEI-BH>7]F]
M>G35WL6T,="T>WU<F-4>4L/9*"F$?/UJEYJ,9EUID9A=9FPQM^ZT.NC29,C;
MIX>-E%S;+:5<HFQ.[&REMAZC2]/'ES[>B2AJ7[97BU*I?+O>2//I/H<N#5E]
M87K=5[6"<B]=#Y/9GK*RY8&)+@U9_M5JOGN\6=5%0;T5^U5CK"4;CTA(0]9_
M)_>KJ;22?EP,W5&M+LZ6>RV'+@W9@/3=0M@+P\75HE>[W?=2]^W;A^UVE S9
M@?END$WUEMWR0%,+-^*#G$FTLDBB0]:UMZXU!==JE:2UG!Q(@\O)=7$HCE(A
MZWJ;:L\O5?'*$%KKV:V[E3,W,P'=-14B @^;^]K5VME*;M68NE.QLG93Z*XA
M6[";3X3&X#8Q7)1D:]XJ":G95$<Z%;(%YB*]+[=VD\I@K_366E&=[Q,.NFO(
M%J0>VIEY2FCTA%1A.G)%LZ#U$NC2D"V8[+5"XW&;GT@)K3;8C4NFU-RA2T/6
M=7N?O4R8BWMUL;S8.:NU<#MLM#KXTB-3<;$9WQ6%B3U:+.\?#5%K3+=6">YZ
M9 %NFU?.)#5+=X144^C;1KZI=R[1I2$*8Y5'#P_];E:1KIO#;,NM*9V1W1FE
M0S9V_% 4FEUW(BZ6\O5TEUA5I4D>71JRL;;LMA\+MX7R8JC?W)B[ZW[>5L51
M.F1C<YWJ%CWF=49 -DT8K&OV=?IF.TJ'[-;E57Y^^[B8[A;KS8-P41C?/A0W
MR 2&[-9TUDPK%Z.YLB@YMC+OI0IM%UFA=,ANB95^L?J ;!LRJ2VED;O*""E\
MUQ"%F0T:C\-VI7:W2-A*IML54FA)T J$;*S=Z._=ROTN,5"OBH*6&3:F"QT]
M@+\%KZAJ$C>-C\/T@(\/@A-R@&1A#YR\9=<QV2_(N1M^$SB=\]Z>7',<*3D6
M>S"6)Z!E3*\8>) K("<">I=\ZD<R^U_\,>B@=,B=;KG[XY0V3GFR")#].X'+
ME3])*+-%Z_3+*(*KXGJ7,GRJ=PXH0D\ZY,)71[GTO\$B[!/K_E1Y%^U$*MJ)
M4]B))-J*7+05I[ 5:"?2T4Z<PDXDDS\RR6@KWG KH TFV&WT1Z[Z0U[[F81Q
M(2S!\N+5>5??^<=+4W@NF_S;V2.2'#O^KY<P>A,_1@^L@%'\3!KHO=<,#K!\
MVBF#2UQ\!O[U"WCEZGNR9.ED_(U6C;B<$UFT4$%[27[N:=%Z*YVC#N%$%NI(
MNM(_\MG7%WBN9,.5+5ZF#I8K,MKG8[2?KP&>UV+],B8Y!W.=$E*I-[72YR8\
M'R0KOSJJGZCQ)>(1&=S(X)[ 8@4/SR\HH[[[:AYJV1DM9N!,?0IK>7[6_!,7
M[WVL_=^BJV"LK?^\D<GWFZY^_K_)1%6GTW<7J$"Q)O\CQ=9),S"*^L\$^=6?
M9@G$7H]O(GD+'_ ):_6[(>S;6_2/?_<_-N+!>/[-[?*WE 9J5K^>-)SFB?EW
M;.5+EJ(TZ':E9C_&K.1Y'99/0 _>/;%P#B;P&^SSNR<%3MBXG<'9T!M'R+W"
M]LGV_*TMWJ<?!GZWC/;&1;.3.A?$LC]2?YQ]C?V/MD/O:E0LBB: <6:[>$9B
M@'X8]2BYR&C0*X]REX/UL%N[Z2_4Y&IP=]NZKTKZ]B_ 4T:/"9\2[5%K.LKC
MKD*<N1OMKA:=:4D8&0MYN[@JW"6'17>(/J.H$VTIZ_;__I5(_Q4C' [_^Y>V
M<WX:[E(Q'?KWOV#L^G__<NW$3)97/[%PBX:"_P>/'V]D'<]@B$Z)#HW=X)FQ
MOV(VVEKT*71GVLY7,N]:,WVYWRQR*2%M7TQZY;:-^Y]3?_V;+!3C0EKXG_\.
MKL2_;ULZ_&P-BH[33]8L7C09^2YZDO3TQ&@GG>RP+I8DS4JYAM!*69-2Y\/U
MY'[VV!C=3#KK0:LR'>^4QDB=ET6D)YF__DTET_%,.A^B)U\RUO@=WRN2Z65
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
M'&,]Z$HW4G,@156X*'CYXH[VH!CPK(VQ'O5-=]O;9057;*WNK>YN-'>WH[1
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
M1$/-DT+M/DD\H;)KR?@^H^R(XJ'T30Y>:%C0D]N=(-G"NI_?C]UY21P_S/X
M/G2C&JY:L<PE'KC'[S#4G'G)M=%VJE;-F.@NWA/1ME7T?PH!^3[$2VF[SG5Y
M*?9F SG=*"4%;;H>/G;0&V# H50Z+B3#P%+>,B;_;/7Z#( A&E*?EDJ=!*+0
MH0XE>1U*CMJ#QNA!7$V6DIQZ4%O)BZN97A(_68?2JK:;WSF7MP-976G:M-!O
M-URL0QAR2,C$L_FG^4>_C!I%7NK<O%0JU$M-)NO\;6-X>RM5!Z5F2^C6$[O>
M9VN8<9544TLK712TFNX\E&N5?B:[11J6^^O?5+H8SPCO"(IW$NH5>:F3]%*I
M4"^5OBVNZ]W'N2255MD[5>A?2GGU3W@6WD*'6E)[U"TN;5.X'H[M07&[R35O
ML)<JX%QX&NE0X<V1:#\E/_X[J$2]/@8>>I?X\=1?_EW<\.D4VL[+)W](Y%@R
M;:<UK9JF K":JK71)JK=0Z\68C:R]F!27^K.9I$HI)8%M]GN7QL8I@=3I17B
MQ5#\ZB]4LST9-WS"*G5:/OE#(L=7Z=!#1TZT*F-SM$C=K&_U^X=*)KT11T 7
MGLK&,Q\0'T9>Z+14YJ2]T(=$AJ_2H%&Z?GF=5GM7TKH\3=PKPW6IG,,:A +
M;"Z>SX31'D5>*/)"7SLR?)4.:4*A/BUT\NE%PDA-+^YOF@7G$I_D4 "8*<;3
M[\!$<KZEQ&JWU>O%&F*W6FM&Y<0/2=2>LFTY:7?](4%CU3)MNVV9TU!:0NVN
MH4^6%^/[P;I6,]N976YZ->R@IT%18C$3%XKO[9]/3YQ.QF6?WM*<CQ?_D%CR
M>=6ZSBKC=**7?ARHG4+&O"ZFKK495BT4/.:+\:00%1<CGW5V/NM#0LSG%<OM
M+I)J/MD=2.X^U5:[V\%=^A;#BJ.8,EE(Q7.Y3.2T(J=U?D[K0T+/YW5K>S50
MNEMAFQYH=U*I73=J1LL6T=.@6#.910?"PKL%FZ?NF:3;-F9 .><BXV?8A0]J
MP']&RU_WYN<)H?+Y^_PQ_?;1-D?J'.USI,XOW.8S3'M[=(VYEZ]!#YWB[!@Z
M=L;0?1:J@Q[OK<>%HU1"U*=\BNGMGJKKN(724!I,]*7="A/.AC7\-W:N,ELW
MEXOU_6XG%-K.[6"#R</PT$PFGDYFHV[DJ!OYBV:K7Z4IL^':O+I0+^W%LK!J
MSQH/Q9EP@34%C\8DX^G4"WJ.SUU9(H]S;A[G0Y+3K]*CIK3HS+<;YTY:=A).
M/E4MVKTQUB,\ )./9[/1E&;D<;YJJOE5FK(1VLM*ZDII";G';>=^5&MFD[T.
MTA0\YI**I]-?(/'\.[%=5[55V9K,(;Q3U(VJFZNE:CCGC0=U&KXU<J2?"X1
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
M-#G8% K_%?-_Q.]QM.Y+>9?@5I=:^H2N3IV?Y%/L5V"DV>],6\/&XZ>EZLA
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
M+'YER$T*?!_/U-0V(N9K6;M1J$\+70]R%-2!1!1%CK4&^_;9B',[1<3ZHJW
M\[8G4\6PO;*?B+*$GY7([ZKI*!$T\4]8R!&VA+J^57#1-@_O2RRLW7:T?')E
M((HT+DE)/9$J,9_O%D7+8]=VX#O93?.-)W.P"XL'MO0>UAH*F(0-6(53K+DJ
M*7[M6D.1S*'AW<4K8SO6(4+LILV1T^TSI*.C=IHW2@D;R#\,NMUX-(%?N0CU
MAUH7H2EQX?8-[^.T)M2T5&J:7F@N/EFT)C77;4X_;UG< :=-5JD*>J^QT'*S
M6GK9K"A<KK2 ."4@3A'TA-+21X9JJ&V#KFTOT;3A?11S['"\5*L)1\/DB9!<
MSQKQOO[Y&-D=4*PE1@9)IF<QOLW*0H[(#3FMYJ$8./AD-(Y=V;T/M6VH;2_1
MC.%]G)HEVY(Z_>2 88M$E13K:4&8/!1.G5(F@<EY8\Q@N-&JYQB7(<TZQ"DL
M58FBY+&&K#\QL1XVE'Q,0^;!.MI<@HR1WV&<X0NM;L"Z@*<<D94IJ^Z*::Q.
M,QB=(/4VCK?0&2V@N-=4XK"B[Y^PB550$AKWIM3EM[I='>2/$Z2X*,CCK=R@
MRE8&'-*>:JE,0K<'_<80@ISX]3>!'9I#EXWU!S S&>KQ;Z?''RZ"<5&(L_U1
MRW7KE*9-BJFII&6G=BF^@! G?_W%CC2C#!5YJ,@?4)$_7/SCHBCGJ?A\N58)
MAE='PGI,+J1YR?*L=>K77XJB3E#DWV^SPQE\&7:HO)5E$V"1%M!4S-=Z=+TO
MTQ)-K$O/W&P:$7N-<G$MS;NMP97/Q>*91H;*"LTX@IGYBN0D!,$L Z>#\$L"
MDE$2.]8P*&S8%3;LNG^^Y6L-N]X'8V.0*:0'^CS-IRM6J<A66P."O?(A6]I$
MT)98=35BTKC33Y57=+9I>F#TB@6H*$X=.T\FW((0ZL50+UX6BAS?R"?E<4[G
M77+H-+)SMY6IUB$4R5 OAGHQU(NWU(OH-#]<9I,)"DS=RG05NS]>T@L(1NH,
MO?@PFP4>H@-6,#/_0:%.V%SN =--0:'.CV@N%_).*'A"Y@D6=7Z$X/FVJ95/
M=+64)'?BZL ID".F,U(LK[;44D:*8:MS):(:X-]*Y+=NVO8%,]'W3KZ$W>W.
M)D38W>Z;E$J$3'!W)@A%0<@%WU04/$R(+6QT^5-2><%J,70),EU\V]X7VUP^
M.Q$L]"'2^RY$P?,@MH=)DRVTD9K%64;%U'2]C>6Q^.#"J8,W-^6)<<PR5IP<
MUR8C+6N!%Y)28UI $W"C"T9$$?0PA7#UW;<_5.L%#)3!2MM]NO?ER3C4*YR:
M+FO3KK:22DZ'U.F")E^Y#^92H)K:5,@W>75I)9HC@9ORM3J$'_'K;S)*AETP
M0P49< 7YZ1Z8IP-3E0OQ7ME!>;<_;DH2)N>GU0L#\TT%62P:!<DB6G&$U NN
M'K,:3([V%"3YZR^*1?$C$ T5Y(]0D)\CS95A>#W]:,0LE\G&>G7-G;.-A"80
MIN5<N$?FFS!$4&PUKPJNJ*T&!:T@C8LTVQM"&%( AE&42O[(\I$SFF"P'V4R
MHA%#<: COKGJB$O%#LM+?M0VVD#:&9?M=G&RO*LWD0:Q+L9T1HE)5G_:1]*\
M^7FSXZVGE0'VJHK##IKBL@8D*I@H[3B6VG<=L:\K3;,F6F 6[PG'<C=.<!7#
MM1&RRQ :*TY[*@)L%,ISXJ/4D3["%S91PDVYC[8I-R#&RV6;7)QNR\B:54HD
M9GD&T_/:H)-V^I7.YV-N5\0VI4V'5GU(Y)!T06<5)ULK.I,ZQ#9L?Q$ED*-M
M;KY1%BI4VH^MM"_2VN)D8$]F[7%_9I=0;;+H+B@J(>NX%DA@L^E%P9FV1R2?
MKB>LAF@[ZR3J*6T86""BQ)%*FE!K_W"M'928_&5;6IR,;G7)8;VQW<IJ[DR)
M2['VJ!B;W1/=KT%=L+NI95.B;6:RMF;M>3]F]DU/6U.P5S9!7>U$CQ^P6^"J
M?2^"%F4-B-GSZ U_ F )?;$&^&3AN*!8QU"&^$!3S$YO4"UQ">0+/LUY\=G,
M>MYB2"&V0-PB-6[VAEFZ!<\/2WHA"#)*H7=(D]R;58-JX 2/4H]@\WRQ?/AD
M'.?)#CEV)ZL2/Q,*&*NTT?$P>^52XE2GOEX44V@2$2?YA)[B)C.F,(3P)6 $
M$0OW(80*.%3 05; ]C26K9@\VM%FA%JHY/I: 9'K$,%DJ(!#!1PJX& K8%*J
MB:E>1LH@6!QM&G&L8)8Q3P%3)RO@8&YO>(@2WP!L3@@**6Y4A_40M A ^BLH
MI+A-8=9#D"+DBE!8A&SQLX3%3TK*G.^R-Q1'5 U%CBBB!<LY[<AO<:^)AJP,
M5$EU+MLK(VCQHCO6S'^+??'7+*,/>>5;E5"$K!**E9!7@L$K/T6L!#.X]@T;
M=H1)O[M")]"-]#_;C&/KGS ;]V03Z)_RN7RJ:E=-C6SW,O6N,4W$D"MWT*?6
M"2F&KPN<)C+UFM08&!5Z.!3 E.!&F7CTV(F6%TW3_5 -]7CJZ,H-;<[-G[V!
MH253J70J16S!3#BL4Z+'FK&HW2KIW>W%Y7&^F6TR&)**H]5>H>3B'IB(7W_)
M>!0C3BD+?F1 A0HKT KKL\TQW@#;?)G-LJK -_E),E%N-G*3GBE<.3/=;.>I
M6#]CI;35<$$EQV64[; >QN#&DBB)'MO2'NJK4%_=N;'%&Q!:VW5!79ELGL^5
M=8R4<[&&4;VPS?>FOFHN!2:?2'3;O%LAALK(H-JZKZ_@$:AXE$R<4LWY(W(1
M9W2VJ"K.IF=%6!02[DE]% /AHETMWA!V2BW38!:QT8)A9[2>M&?Q5B?W^98]
M &C/!7)'Q)O #NNRR& VPG%JE:K5^PD^3PL8[OFV6#1YI!%%N 4U* ';>U/J
M$;:@7K1=Q1N@K5OY1<U)I0TD1UJ3N%TS]3[U>2/_(]"FK!J562_4!M+.QV;#
M>JRXKHIU"%I8^H%'T009UGZ$>O;Q]>PE&E&\ 5EW*8[Y)BDLF5DA76<!:(EE
M['IZUC1)5$70?E%;)4IXFNS.=%%;0,C"4UC)*()>.88<0,X,]>RWU+.7Z"_Q
M!F@II8]0?+.%,:0\1AJ2W"XIM<]' CX";658H^J)X;RKL?5^;<ST6QBW\/0L
M/*T5C<:3QT ;9J%OW0@B-#P"+:$":F5\K<;T#0F%S#G76<99G,'89CW5=<EI
MX=J'2M-D4<EAS0+.YQ)#6N_.VVP^ WQX OKP!!4EL<.46MB5ZF=WI0I4ON#"
M5D*G,;3)62J-,RNYG<ATN)+*QVZ5WZZO]$G91A0%(<U8<K)&TAFKM8!@!+XY
M@461Q-&B[C"_'2K$4"%>2"'.:K'93)'J(J/09F>H3UOQ;M[#(!DJQ% AA@KQ
ME@JQ/-!3VGC176NBLVS-V 21ZK<]ZY0Z0R$^3 +](8H]@YDJ#PIU[E=+\Q#D
M"6;^)RC4N5MQS4-0)^2=4/"$S!,*GMOV='B 9,KYWG_3=$0]PHU$2]G8XA[5
MT.2_$=\HOVCKAC"B],I[Q8'W*IMN7U<"X;X^2$AI6=3J@S0B&)JXT(I4%VTG
MW?:5R_=H7A]WNG5LJI52N?@X/1[@H\Q"P$B8'D&C"$Y%"?RF :$[\,Y#1(0"
MAJF@[*QX'1,B9M-YVQJEXYK2Z"R2\P':'(^O?.JUT4A1_>RXU^!7 F7'2-NM
M]JDZ!!$\]9K$HM214^?#M$:HA$(EY"LA8UEO,UU>Y=E!/X47E%HND1M"_)"A
M$@J54*B$3@%10T[TK+K4T)@84<A6:7M:$3$/1-092LCS(?_7.Q;J"@LX=FU'
M':SV>>:D%?/'[W)CT&$\U3.^P1P\O,*7VK*@>H)4]T;\48&;JDK081TI$5&"
MIUF+Q@KVHS%,![PA\%\C@#@J8+6A!3S:J6AY1UH[(\56 ->*KJS"CH2 &0$)
M;/^3ES?T&A4.5$,T)!7\T-ZFR.PGP 27),VY:WER2$-6YW__#_S9WD[2%=&"
M4FOTBA]P^.R-(8 @_[F*Z)$ Z11K.UF,V$KI\^0.01[.T/O[W_^U/]/G.%5,
M,G73^K.5M7LD&/E6 >:)W:$2ZUN*J,7$ 7C+/Z*^$%?VAB04]8016SG^9R>O
M<=\FH:C_1)X_PGD<T'TB+F-[U'T1S_%_M;WDR>?M-=-6H8CY8RFZZ*AS!=[[
MQ5V])73,Z1\,?2*OM(*O0(KOK9?XP6)%1A84[?_39-/'5M?'KP%%N/["3MM<
M I"&0A2"-0TU!4#>;NW%4SC\)=&/45/T1+] XC+93_9%82!128$025SH(TE"
M4! 91P<X'D<1\I?_U,L0]< J?2D"/A&MRS.1#,.EZ4:3X2)<EVLR%2Z2:[!\
MS3=J"M7TT\[:\Z>=9JL9ILHQ&?"!8\N%#-UD,EP3_*TPU2;'9M,TE\^6V6#/
M?#>+R/XT(L_SB+#9")Q)!$RES>UH<-G0[&[/R5%%=\;&E!/%X&^>BV38<IEN
M<)%"-=+,LSQ'5S/<OQ'P18ZF:^!#E>8S!4"+?VZLS*]ND&Q0FY"P 2GW*2&9
M2 X$0I& G29AA)! I3BB]/L)!1]L>%?<FGA$6RN;H^K0Y2=M!R\U,JV"R0QA
M1<GKD4IBWE873=5%8M*B/NY:-7Y(TV D^7KDN#Q*NC.')9EV@]+BG=D R8QH
M 3N\I[[.F'5"F<M:293S]3Z2:(PX.))X/=+ *NVLVQ$[VJS!9FF'*XA*$YBB
MAT]O&#;'DH.\H+55IU]O#8M37H/WI%Z/K,[X1 H%=$7:JU2[E;:6JE0:"OB1
M]UQ.["%!Q<N:FR_2"MWO=J8&''GPGC&2K@PR<Z/&N_%.>85):4%P%@)^^)Y2
M3UB,&^UD#&&9;($L:M4JBL%['KQG5I:[63FYE/B9G'60@IT7G>E0( 3D8(WP
M&,(,XJ3%3 :M&5YR4QS;IX7XX<AT&\>[F>FP@<269*ZOU2:-9'\AD(<CXY.8
MLVP8Y)*9#.5J%DOIPVZI#CR3@Y'C3I=ES'1SHJGM!$(7^78MGAT*U.%(CJ[U
M9ZF2.>!);FGSPREM6OI"2!Z.G(^GZUC9F=&,V!+[@P(3-Y$&X#KD<.B0;O9'
MK>2\R>1<5Q>:PWXG)=0%%#T<VAX:^5P70(^?"2NL756;>KT(AF*'0UV+F/6M
MS*3!*UFGEA*6(YJC%@**'PZ=HI,A1>M]B5F1SF@Y7Q$Q%9XO=62A&I7R0LLD
M^352BM%)&<NQBU$<##VR4G-L-6O.J5P;<5=XJJC0]78E RAP9*E2[7%BD6B:
M15[M),O(>%8=9SEPUV-K5>@XQ6)LK6F3BH;."#>)]A'O:.U#!B#+>B)916BM
M5$OE#"Y7G ]P[]R=@Z%5@NBTEA1;XF-3E18S*3.6@"@]LEJH)3=18C;J:&ZC
MK%J+5JJ51^L"=F2U*(&K,*AJ%9 9R=2+^I(T4NLZ; ES,)05I[%&2NP5&19O
M=S)CIM$KCX:P@NQ@:!Z-:X)4:!<8;#&9Q2865BL9WJ;5@Z'8+-VN]O+=&))C
M)<6T:4I?V>"N1U9+G<7+J-+**-JL57-TH=@4^DL:NLP'0Q/K[EBR,0?7L(I"
M(KH(W&W 6=B1U4)0JM=*HA3"Y 9:=RASI(@CX 6.K-9Z%.,8G<DDF!B24)I&
MBVKS'!AZ9+5J(W)FE^U8@\=X5,"[-8MI874X]$  +AUYB!!-)*.EA49FU12E
MU6SBW?5  HZ)=A+K"TM"2\<6@X4TD>(CV[OK@0BL$I5166=-DG<KO4$,'6;B
M;:@HDH<RL#+--\E!2\&04J8[32?+9!%)+&"?ONVTO ##SMWQ#0S@ZNCBU%;^
M;#_LZVWH(&Q<'F@:2[Y)O=7#GB\BNHZYO>![(MZ5%_[*OM7CCSGT'1UK^V*;
M!Z*^57!:5CV.?I!5W[/W]^YO@GL.='.QM1VV_X[!@-P?W[E; #I]Z%=M3!+O
MP=NA8A]8;*ZCW,+%^B 8Y__N#'-ISTF^<JX^7)@[+0R*/*$A9(*X,A]E%L.%
MN=/"))^P4)8%<6%"Q 1T85 TA$PP5R:$3$ 7)E0RUUV8,_=K?^A9!F(?RO/=
MJ'-H$^Q=V-1[R>#+[H@[_'NPS4DR=4@Y;_/')PF&/A$G5&)OOH<YVIO6([\B
M]TG;?CZ1=1Q9BN*3N *^'=G^9\:0%?E1.KY_@C%/WTIVC!4/(7L!;L2>XMA/
MYT9.79[$BZ'2>!2E\?X6HLN0ZH"1;E2+^5'$[D% 5W3UE8\T'(U>=$?Z3Y#\
MU_$JKLXZ^%/B<[N&CW++8Q5Q?%-Q]%%L)Q1'H3CZD>(HM!9#:_'^XMFW%N_8
MX.PVXAO6SWVK3GE79L>;M?XX(;CPB H EIJ%!F@@)!P:="8+)5PHX;Z)A/N<
M3?M@QT5^&J)LC6G0S4(U%Z'3S4*KT"PPW$6;'3U>$ZW+E\9O+=K;D^+R77JO
MXU8_:CNZJ[11N ]J0E9Y-%;9FI$AKX2\$HJ5($<P;W1"V/5. O_1W<*NGKU^
MU&9@'YSAW:9T=+%$&!N9-1.KOCM*T_WQ]8X%S<=L3LS/^ 63&U&5!#_(8CD5
M%DC?Z/3M'ZI3PH9>'YZ+7>,KPIB>2A-&Q,8*BZ:*0SW]^?Y>'P$AD8K)^(@S
M$QK0\)(2,_!6:U@'[W:[$ZU_M+ZX^O:"A]<7Q\^BEJ19HE-I=SI,CD]76:11
MCBVYZ\&D6:FNS S3-Q&7BL<F50?+E5M# ),;G2(=ZHM07QP_WQGO)&?EQGK$
M,.EIO*L@S3R34*YW-/-X55:R:XYL,C/>X1VY5ED2&C2<KG<R\T-'V4_A&%J&
MO:*\#HH1QXQ8"EA^2=65B+'ST>!U2;1'D:EESE59D2/]5<2<*I UC&$$4GJN
M.JIB_PD/JPIC\F'P[-Z**V25D%7"F'S(*Z%8^?$Q>?)TRF24*3#^5,_<#Z/R
M853^NT7E]_G[B&_)LM-85DWPIA9K=IOY66=)::TA>!WOO"@<.7;&0!AC"6,L
MCQ:3_P &Z_(R950[+8=QFQ0VF%FK3,:!," @###JA C+(R/AWKHBC,@'(B+_
M 4AF)3*5'G<HG&<;C1HEF6S/TA;@=<A??[%HG#B6M@IU1:@K'BT>_P$,G,ZH
M1B?TVHB/-5H(KYD]E>Y#&% >#(YN8_B)T?@SG#!Z8H+9KSV*PR-65 -PR%"%
M3:5%VU;VSEKYIA'V>RO@0 ;;@ZZ3;^*_[4.#'11VP* ]7!P13SC3%-ET/%5"
M8N2HS?813E+6"X'R/#HRBE!75M-!@U88.0RJ,K^)XW<V?E+I)<<HQ,KBN76R
M) _7-J)S$#_0%22BR1N<_1LT"-U;.P4R9Q-T[703C_%L=*GI0;7>*&='? G+
M=!)J0;=Q%*(+^) X&D5Q(M1.H78*@G:ZB:MY-GY,FDS@I;'=0-KI=F*-+P6A
MV8#X@<XG%4T<#<*$^;YG?O$.7X[U1?]PW<E4,6S?[526\+,2^5TU'26")OX)
MLX%A-O"[>9/<2+24%&3^]![O'Y$SO7)^%3>F[9KF)I.XSAC<()Z@!>]X,CR:
MP,-8;QCK_0[NX<F H#J=S!SM" N&E979K#\FFOP0'IM)0$ @:#S,$(89PF_O
M[YT,%Y5F&E,T66HBLQ[NSE/#;@+-#07O($HR&L?P4'^$^N,;.' G X)L]W*]
M!M><(%QM&:_VYJE9!JT+WG&K\2A*AC4\9[MRK#-2K @@6<PKTSE6FA/F#<.\
M8> T]4T\/0\<5=. T/"K"QD_P %D$Z :N-LQK4T*))UJ2G.>U>TTSUK%]*HP
MA">^ [>/I,+0;!B:#8)FOXEG^"D M28#W.V2\P%/+ION3!RD]4*;A@""O1VH
M,'48I@X?0$'=Q)7\%+ZF*FXF$M)*X,6IED52XV+?2M<AOH!?&;]RL4+0L!4J
MJ* JJ)NXGI\"D*YW>5Y<,%5M)3-+:D)F^N+4L_"@'QJ_FA?Z35S.C#)0+$N1
M(XZXC/R&72/ W%?_;).'8<HP3!E^-T=RR_*^B&F*RXV422F&,E"=(S*F:N+D
M9#A>S_F<2/$Y.5$OUV+ "$8W1878E??X_%"E_'A5Z9'?#^TA?HR,-]7PNHCK
M8ZTP*FHLVDWAJZY$<[DAA CT$Z,(@AQ Y++[4>X-DWLKES"?& @G\'SETN_J
M>"V_C!D,*<U2R:+5J7/I!40.W$$:I? K1RE#Y1*Z=S>J0CP7&EA;S>JKK%A"
M)O.U:E%QC6V.ZQ :P+<CL62883S7W4N/1&,(7DPU]K.+WM[<"&">B*Z*WGE0
M*ACC[QO%T(OO&PU:V.G>JOO-G&. 3A][.&U_$U<2B#)+$6TEH_C_7S#8+:K2
MXE1UX"_>MIFU<B)5KV?($B.N$\B SS?CF21P*S'H5B:I*W>/#R"_!=14"""E
M'LJZN(GO^C4H4@):5,1DA4#<>3&_F+FU.,O5(10)N)LI@1R+\(2)SKLD.H.,
MO:!KQ9OXP%^#8D7E^:XM#+,,-\X91IZN%?HE3RL"?SB!A5HQU(K?0BO>Q.?^
M&A2+2"_9R2JHS+ONS%@Y9#QC+Q80BL#_IJ+(41/UVV=7SV">]"G=]L,<Z^5]
MZ0 +HJ";"+<Z6@UBH[:!1FK%VS PN!-.] X=1\02@Y&Q9#(]LC22T(K506$^
M6">!6,*AWTR043QY+#)X22,AM B.6@0!1EW@U/^M#F[[/,P*G4IE/)CUZ@C'
MX'AS-FXL!68(84;X,$M<WRG^T;H,#3RJ@J[+;G7LV^=!5M=)*9_.CPI(+E;#
M*\Y$ZBPKGBX#WFX2B5+XM?< A[HLU&6/X,I^"6:YI-0L=&QIR,1<E<A/G.EZ
MQGFZ#'JRB2A&'>Y/^IG)Y$\+\4*UQ7#-0C47H=/-0JO0+##<Y215 -/&]Q!.
MP:Q/_0IMPM.>?E1E2\@J06258%85AKP21%[Y*6+E^R4NSCF_ #P%&L'>6<)3
M"Z8MG)6W0U"9N>H4'C,<IBV^56G8)6AR]?*7ZR8E:N+*.S^[:=(2X')+J6T8
MOZ:+AD,;,K/E_6,U8H5FG$MW594GJU(K2U9%?L#2 AKW:\021TXI^"?<Q__8
M^_@_1X<'+Q+[$DJFLH9/NFI:1'(E/CE-)Z:96*L.44+\^ILD#F.=89'8]RH2
M"[::N4F^X$L HFW1598+.<FHI+*:*9E,,UU:0 !YU6+$D?UQH9H)U<SCA?N_
MA)(A5F"2?9'"F%*%'<WL&(:2VA"BQ#_2+GG4&/N)X?YS?$*X#K:Z/=+.=ONV
M*JNBI2IV-&(H#KSH]:T4_063-Q5D>%A %A:0/9HE<!^',^7:JJ'8MF)7%8<=
MP'SGYAOYB)0;I_08@Q:9(L/.M2$>6Y0FV@K8 J37W!*-(L?%7+A;/ACQTGM3
MZI%,COMXMN?!L6,F"'#[9I]O3^NF0;A-;JG4(1QA#1D1)=##3@X7=V]#U?@-
MJLB"K1KOXR2?B<6V/.0[PGB-Y+B9DC1JYE)A/-4(W&04P:-)ZB@80]T8ZL9'
MTXWW<<?/PV.67!4F5B++:S&Q9Z4'E&&O*0^/E+?-%4N<HAN_7TKV# ;R:LE<
M>,J?:H#_S14[K"/[R75DP382[EE%5MB"X\66X#>K7"?+SKB;G[53R&2F-]SB
M*&$EVD V)3PW&HM21\I<+VPJA';!H^W!#YH1<,]RLC/QED+PNB*YN,)@5H^>
M50U2-T8>WJ"?'(_B\</RS3 -_+,*RX*MW.Y95G8FV-H2VREW5\V5)JKCJ6!G
MJ_4JZX'-<X0340(]VIDWU&ZA=@N.=KMG@=F9@),6/<RQRER#*6E(?[9H9&EN
M04/ 04\76)-'JJ9_:.[YTY(]6ZC2U718:A:6FH4U(8'@E9]2$Q*R2EAJ%O)*
M*%;"4K,+MJ2W%%EU(@-1@HWG_2(STSL(6U;Z3L12IIO44YC?^%8%9T'O'72I
M#,9:L4P9^)6OW<W&CK'9009P^K%JF01"CIC./,VD1_:(D<9=HPO/-DS"S 3@
M!PQ!B7_#TV'"[?Z/GUHX 0V3NCX:%>W,0.-2>C&6P&7$+'AH(&"%)7+D./<P
M;?"]JL>"KC,NE1CX@L[(U+I<(6?3&20]KS7YM,2UVP@-44*&.B/4&=\I8'\"
M&OARO[9H*)48XQ)L(RTGE6H+M@I.PFC\J3KC1P3CS_#8-GL!8;V7YZ*IMNV*
MAJ0 5K O[Z8%+1!R;RT<R+!\T!7SM9VYV@M!5-@ (@WQ<$0JI==#HF]08@8I
MS6D^EI&41&H]!.]T.[\N:*@*PXM!;>YZ*??O,M 9+Y 2W4::35Y<)EV>R"Z4
M<FH!H4.\"YWO'9R_MTYZD)S.C]M#=AZVVH6NPZFY!J65\E6B9+;GC7&O#K$%
M7$?R#K7$H48*)HY^@&]Y'G(R/:J0E'I<G5<777DV2<A:JN09=/"@ZJ,;+,,4
MX#.O;,GK=1 Q)Q/ +/9(M,"K@O7R>HKL&HR\]#4W'4;0^,5;C/QH=1XF!P-1
MWE2S3"#]93MKF9,M1-A!V@,(YYB2=FS[*371%].:S"+B.+Y66URBT)W2 A"0
ML TE>N7#1'ZHP@[]Q9NWZO@$-'@L;68R6:&MQ5C9&E2F;(88+B T@.M(Q4\X
M .21T7%OG1(F#X/A$7Y&I\CC6D$=3!4$RV$X6YN(BM(90N  OY"X]F&+H4X)
M=<IM7+Y/0,.H3JAT?3A<,NGT("&.Z%)MFO5TBI=?))*)\%BI+Z07(3. )\)_
M@8^V*BL^0X0YQK"AY(/%>V_94#)K6ND=<M+[P"FK8M_;9IU5#2#?/CHV3QG.
M,WR^5&YIJMESR5QA.L*A-XE!;S(>Q=!XV$0K(/9" "GU4";&C=*<%X,FC72&
M1,;IX=I,3(AE7F9B"WH(H1DF0N_MY3X8%H.M.&^9*+T8.D5SF4_7M#;"L/HT
M4ZU.39:>+2 ZR5!QAHKS.RG.2_GFMU*<2B)=BC&=F(.4\+G5RQDKF:EXBI,Z
M1W%^OX3M&<SD]:+\O6E&^0\\(-!KF1+IKR*#[2*$G2G#SI1!M"?NV9GRN(1Z
MLY>0L#2Z2+&"Y_A86^#$#C%>KAW@?N.^^XTB1UL)A:V[PM9=P=FM=<_&E&?"
MK8")R64^F6[QZFJ0*HUJ*DN:"P@WX%)CMSB]X4<KMK KY0,XRI=!6JF8*C7=
M=BW&Q)"VQ*YM7FV4/:3!C'(T$79<#A7;CW%\+X>WUS ;2!RY1LO3N::.<7;>
M:JI&:C6$, .N+DX>V[CQ$W/39S 3,Q@HDI>:!BL(Y+H149;22#2&2@1PA1+Q
M/]L1P&9PVW*8IP[SU ]F1=S$/?9AQ Z8#7@: #NL 04=_ ^>[#H'HLQP[(9B
M.Y8J.8KL'3!CR"\O[(TL&)+NPH7,J/;4M$4]!SAB"GX!_NUO(W$5F9UN8H;O
M6B?JH)9UBG&LH'&I<GNQ-(859U47,,+;0QU%R:M;)\%CZ* :+,&C5.B</Q38
M\93632M\B43:L^$BF>[F&OVZ!W9X&D7BE(.BPQQZF$,/ME*_26@@V#B/3Y&^
M/%M4-6:5%%,=NI[!\-00XIP$OE 4(<*SDD.E_BV4^DWB$L$&>]:L@9>DY1X3
M*PSX!IZNVR/" SOUZ^_//FKR?+64421+$6T%GCOI!S4N)17#5/Z]ZZR#;;;<
M)!;Q)9E5 Q0W92"Y/(1LD;*39/O2T9>8[V9%RA+>Z=D<I9403)CUK>1 ;0!7
M) [C#A@631!'#\8+:^T>N=8N:-;#34("P<&<4%V2R629GFNDD:#G!+^@$PL:
M8@ZX_\EH(A&>1?G=Z\*#K0-OXKH'!X]UF=2+^:9I,BY3RR/E*CU()ST="-QT
MC(@2R&%%;:@#0QWX>!YT<#"G#-+J*A,O=A %3U"4,[&EC.)ACH+;3'$$#YMD
M?U$_I+T>9GT%W-. >^/-063J+>&W/K;RWK;%0VX/"&B;&MH6V(% "#CB6R#K
MM)N,4:U8 YEDI3S96.330O].7OCYD<.#!HX+>85VXGV6GRD8WE_&ZU2]LA P
MTG.]4?2H(Q"F!\+TP./L6WP)8%0PA,E*GRV+E#;3Q%YQ,$@;$O.P $X.,O%!
ML8HT&#7/9BLE85U :G4(8'@X%$Y%4?R$5CQA)C_,Y =:_Z*["(!10YUXNTRG
M&=7"7 -A,4M*UQ\5OOJ\7%GH<;.,N')#8[!.LFJN: A?Z/:C>)0X"M]0_X;Z
M]['T+[H+)PA:O6.6[*2AB9A>RQ-SKEME'A; JE*?5/@&/]-F2VPB2@1%=O,>
M@&$C/!R/DN2QWL-AUOW]B($"#T.^2JS@1QLFQVKH<2"U9-/MZTH@Q%:@S9#G
M1,2RJ-4':40 4FRA%:DNVDZZ[3L%1;\NQ>1X/:XLB,*0%W&MRA=L)E;7A@*6
M\';^4\DH@A]K$WVUPL0[\&10C8Y[T^5Q3(SGC 4QF\[;UB@=UY1&9Y&<#]#F
M>'RG+.'7P=DHYY!^42^@"#D6QEIMR<^8E@=.Z.)C5!2/'^[L"W/U5Z[0#Q@4
M0[5Y!V26F,RZ*"2[++)J5%M31+4MFUQ 9)*AV@S59J@V[QH9+QI(*Z59?8WE
M*E+%JO*-O$E#<%)GJ,TPO?^>NN#<Z5178)M"48_(8&5TTW8M_SPSV"IOH)N+
MB&KX+ /H^^=;I_WO(>Z">2SV5VAS:0H%,T45J#!VR"HAJSSFR<8AK]R?5WZ*
M6/E^29HS#B?R.A]/156.R*X%=W(Z(V63GO$.JU6!6V$!8SYL>?RMZB0O%59Z
M[B\>5BP\<L7"IT,7SPP0QJ6_40U9*!]"^7!=^? C G 7-<0D<Z)$''%Y^?,G
M@N;MW%O^GEAG$[#T0T!3A;?M?E'P8-*$**D!,%45YT@* :GW>FMFG::U6&[<
M</!:;]U.U;U* M@[*X'<NS8F3/B=O#DW8" ,2@[PMOTO3D*=-BLD\\:D5&/4
M(<&;2MDLR:Z'.KC?)1JG#LMROWM8[]Z*[L2"EH!A+.B*[B8M+DZ"W,(::;B"
M)[+:BJZ,5YVT)E0''N3(7W\34>I()7RHZ$)%]Y"*[B9-+DY"79XV43Z)=#A>
M;;6Q8<'L+Y3) J*.\DZ#.;ERY'\=$2SW%59S[-J..ECM,]!)R^>/W]5%0<=W
MKMJJ?USEGY$J Y?XW\VIDTCJ!49N, </S_"EMORHGJ 3O!%_5 ?<5 *_:0*O
M6Y3 (H,77T$WW# =\(:B!2X;7C9D:(DZ<-0M[]0,X*3;"F!AT94!NF7(F8 $
MMO_)JQD3X>7-(9+@A[8#+L"--?838()+DN;<M3S0B&>OI*S:4UU<0496_CWO
MW7754&(C_^&??GEO[O GGY[*_\KJ_.__@3_;ITFZ(EI08H]>\3H.G[,-#R#_
MN8J,E128;-O2 B.V&NH\ 4LD#F?H_?WO_]J?Z;.^B4FF;EI_MDIECP2;!<(\
M_3)48GU+$;68. !O^4?4%^+*WI"$HIXP8KL[\\].,>&^M491_XD\?X3S.*#[
M1%S&]JC[(N;F_VI[R5-$VVNFK7K;SRQ%!TI@KL![O[BKMX2..?V#H4_DE5;P
ME0#"]]9+_&"Q(B,+ZK#_:;+I8ZOKRR8#*B?]!9-O+@%Q!14$%$3P+&$H579K
M+Y["X2^)?HR:HJ?4A 2A$!B.2P(BQDF!Z"<0H4\1J"#+5+POX0.4P*5?_E,O
M0]0#2+^4$.=;^T#Q1S(,EZ8;38:+<%VNR52X2*[!\C7?H"M4TT\[X]>?=I4%
M8\':L-4,4^68#/C L>5"AFXRF6RA2E?3!;K,->E@S]R;A3_')AO932:R/YO(
M;CH1,!] &J;:Y';4"(S]\>OO[R:=XLMT(T)76!Z\8Z10C33S+,_1U0P78;,1
MGHMDV#(8P44C3"?-U)J1&M.(<'FZP>Q^Q(+?@[^ )QKM L> FV0*:4B'?^'O
M<S1= Q^J-)\I@&O_7-Z,V0JS78'Y4>J<485^IM)$=V+KCK;<!XQ^56O4-[^K
M[@2\F70)+_ZEFY!R;6#@V'9&L25+G<+[T8:<$FW59@<U"]B,AN,]I0D>F])-
M2=LX#WUAF1I9C5IRM$;21:'%.5)6-;+@ >!.XA0\PK%<Y6*JZYTE.#"F/R%X
M@.GLRQW4_[]89(\@&_,YLJ55$*4-] ;@*P-K'SR<6]G =K<C7LG"1FD8TE/D
MMY_D3/^[&^I?R/P;C6R_2OL>Q>$7IFMM+T9,:W=YH6RO_A-1@?^Q/9/>@F0;
MZF8?^!*Z.53!S"0[XBC2R !6W' %183KE4X\1=)@WL!;M>R("YP4\*#(Q)1=
M7;2B8-3 60"G)B;:,3$&*#A7)>5Y(IPH<L_/!QYY!/@QXO.](XX9 41P%' G
M::2 FX)/#G!F-6_P1!&]<@%9T8$98:TB@./!XR7%_C<"/ 8C&A%UP/3P@$$X
M7%DJ$KA7Q!ZI4\\U^M<[?!",@EZ5-V0JKN#]#7MJ6CYR@"\V-U7OEL!? _SC
MC0/KIJ_6RI9"X">RXKW[O_ =@.4CC?S[*1;T^3<#'!%PT,"?I^NL(L"AEUS=
MKT#Y%SAOP,22/%KZ#['!ZUI Q$1D4W*]%_8SM!/X<O9F2M[GS99#> 6ZE+H"
M9FE H6.Z=@288& YGQ<1K#"<!V"T_LIS,%5)G8*7 $ZH:@ .  LW!$0!UKHN
M M7@F6B1B:L[:@RLZPM^  ^;P+C*ZBG"@F6? B$';P.&*?J6DVR/(Z0=CRQ4
M!Q9V*,N- (4/G8)%&P&I!3L\@L'/ZZ^HWLN;\+ULM[\#==1?)3^J 5X)D 60
M>JHX+GP_L%S -X[TH1S<O1E Y0K0#[P(9'1P1X\;80+\Y7IO 6!'?HLJ8&%
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
M4.&;UL2D\V225\K+GIT4>^)D#'40]>LOB@!_BSI!"_V(+.XY83GS>'?H[Y[
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
M^OB0<#4Q&AT1"26HX_DK3W)S_12-#']HV'-C61Q(&A)*&E%W4./F0-1\RU#
M9Z*>_4:ROY*765QBZKU"5UU9I3B43TD4"J"(4"QVAGSZJC7Q:#+U'?MN'/]'
MP^7;LJ\?W?Q/,&\UN11&Z6Y_+4O]]$1(2@MV76D@YD6S%$/D'6:9/IQ&?<>[
M@>K]62[\)_@V.I 8B^6S++,"58MLX4V*56G$MS'7*2"CQR/E L:]D\/^:+@\
M(^/ZPSW_!"<FA1R;7V1Z SSG#+1$2ERTJ)S+B>C2GTB$R$CD3/_\/S;:T3_;
MU57XXZ8DW( JIHX%S[_:)\2SR,!;OXL[H0O^<WWP.YS!%0)H4Y?0=7L",'ZH
MSP%FF[QF>?BQL 4PX?N"H#N09$5$=QBBJ#%FH_6O2@53@3W114S2W-7HL0+
M%I(]P>A6&FOKAB1@"9P*;9(KT__=4B:V1YJ6]V'FOR\8VH_AF,*$M^ +B'[X
M<XJB"]XZ]#MH!RZA;/9M L,$EMML7W=,#$"P0!Z!8-5'WFYW7]^^\_;YFNB^
M/>(E$YOSB@/00@W8;Z<S;79G D52X<[-U9]VJO(K3)1&(V!B(U-7O5^ WU+>
M_U)HNQ7XF?=5 *'I/6H(,'0J4^*5%ZP)$-FA7['U-V>$J),4!=,% <*"AWN'
M\A6]#W]7TCSQ@2 !0>?8)TZ]/3'<A_(J"."O"SJB5'[.2PJ"O0>*#\ZSV<L0
MU4NHA@(0)2'2@$C4-> IGQ7@]P"T3UDB/.[+G5GH(J[94,6I<5Z0>88 L0NO
MZE"#0IF+05(UT1FE5Q(5(4^!D:- 4,\1<"W(9Q!X"^M@#-B!,#S0(1G'=.',
M$=Q&B[3U/94B"+-XK]+M]9@<FZ[6\&8YO&S1;S5%2Y@ T5% ;;15 F>FL[7A
M-E(0U?)&%0RY?KM9BA UDV%+,] PJ%@K257@#P*H- SXD[;I@%LH^0>(<T\
M;9Z^,7@$B#S>L,#O[8O]+:-"(XA\:(W\5OEEV$6CMK5,O"0RWK'U[1NNW>*]
M<Y!HMI]YYJU![WC65P3'_XT.;IO;C6U^,.(!Y+S0=RS^$DG^*=XK2O,3ST?D
M/8*TNP7;]N\P,@]_#TW R^$%A--_#=WC[]_>5)0Y>//,#3;<']XNY8>6KC@V
M>'/0:UO1)ZG&6W@!:?P''F;W[TTC[P$F[H6)Q$O $KY 1, 2?L%$P!(^043
M$G[!1, 2UT7$A4D;'UJN=SGVD9?Q^O7$)<#P=\Y&XM #$Z O \PWH!F> 9>%
MQPA#71%W\>CC?__??X;7N5=*OHU.WS5W[ W0WHM-OP;P+H<@RJK(IZX$KU/7
M'(\$6$!E/J&RS>5_0&8!F=V2S'KUUB&P/F<0/+34\=R(\L^;'?RX[)+'T,1%
MS/+IH+^OIOL*;8),-8KI&N/D2 LW>\O,:$(?7&.'+2#\%AT3N3@6T-[>3KR_
M(]:].BE+(["[BM9D<14M.1V'37<ZC62%Z13ZR04$%'$FJ45(#-U'O?+9FXOH
M@.\"OOL*W]UGM*XHY^:UQ91J,(00Y3+:I#^<T(V;<5TS%^G5F-*HS*3+&;O2
M5:+\ (PAF*(!UP5<YP.NN_UHVPS>ZLE<96XS4L\I+P269.<WU',T.\?-<DH6
M69[CE,E\F*+(-.*XV+D<%SF3X[Y'!.Z;S:Y\J"CY07+C]M,EHV7#%/@$5<=S
M,9K*."F33J&1V#>2&XFVX2B#I3Z3:Q.FR[37>F[='W/DV?9Q[#Z*.F"E[\9*
MMY[L:)>L)JE+=1N?E5K]]'H9;:RSMV.D)=5+-3OK7AI?C9JE,I#-B96B(2.=
M:_(&C!0PT@-LV3\SD30?KF,&,VW+W>AB7&2=0F/-W8Z)5HSCY(U9=\W6UGR^
M'5XH7$M!3'2N%7LN$WWCJ/%WG; 6>,M/;?6^.SLC/$PL8FL\499C3GWI%%JC
M"#N]G:.\4"-=H41GVNPLEDZ,IIRAEY4Q%SW;X"6"R-3/YK5S %/]#QT(WY]"
M$'XV[]X5N[U,WYIWJ$I>+C7[&3I/*.TTN)W8+36J<;Q(] G6Z64M-M):-5?I
M!A2[YUIVYXK=[Q*>_&:CA0)G\/E,M3_TH]?(ZGHU+K!=/#<=1H:]634^"-_N
M/K&:F:B$MBS79'Y2M*A&LCU3PS1'G6VT44%PY;ORTX/,L0#5WTUTWGS$3DLC
MHV:38PPYIF:[*2M3GI&MVPG-926=XI@BUV5:LV)S#G+]V&+5@$+S7)/K7*%Y
MAT8=EW+#=VC!,=[T1<5TK\&%E\<?PC87)VXJ:*_>VF^0@-H,Z!9PFSQ@)K <
MQ=XVN!#<UAH "0/(*F ,&<CK\&#K;H\,Z& M[ EF*+SF-7+8_3QO2FZ;CUU'
MAC,W C 1B(Y@NUT04+<0FU^BQA &W*%UT,4!T0SB9DES^$TO&+?B9Z^225 @
M*2*1-7E3HD\BJ-ZBE.G=[&\B^BJ5+L$IA;]3V?2O_SFHV=IYNZA[@&[^WB9N
M[X%@4RM&N%)Y#,)>21@_@KO\S2L+?F5M97CBA=CU3?N]2_Y&0,.HET3BW]CK
M2W2.([BCQ@1[T#UH/.!]Z[#UP.:]#^K2-BBT=>,W$7F)W0B#;WB0W,,7_P&R
ML(F)U,K_MFOIDW5LZ#44<U!N*P=9ZINW( .[S2 @[Z5UMZO#JQ3E]_'_'H4?
M OT4-/FMF)?'1&FUXC(1N5O!B2*;[^EL?8'4X"_OUW8KJS.<+-7EQ1JOC7)Z
M6Z_)!J.-X<K8VY7QIEG%[8Y6DL,M"63+LVI]/A]OLF8/5LZRK>*P&8GK;"[:
M2W9$,BI;=&.3Z7>PLMQH</*$B)997IC;TY+(+6FKL<E0.E@Y+"<Y/"5P*SG6
M:.*2.,J8C0@-5R;>KEQ76@NG:\VS#* D)K/(KPJI\F*3O7"P<M)9E7*5F)'!
M<XDXU,<,$%JY[?7LP<HID25+U7BDQ$IS 425H5!RH-HDC_>9,3-5)M.IM)DP
MMZI8>JP];X31KQ_MTW(*;,U<@!XK39P^-2F)K (A3W'XVY6=]"!JK.*Q.#.;
MBU0Z,\EF^\28BQVOC#H61"-I*K(S+":D^C!<GPP;T.@Y6KDFG+@<K>(S-F9S
M[4&"51<5A^82QRNSR3 _X%OY*%YB.Z4:IP_2#9+FDKN5;P3UMLM+N=%EBW1L
M.F-K-J[(JB"/F!C-H:7$+03R9[N[N(\0@:![UF)8@1KQ-Y2TP$2OCC[VV-PM
MGT$53A)J=(8A@Q+;,R"M9[ G:AJ6!4/3X<V5YR80L1 Z222$95 K'A,UQ]IU
M+^*1T>&9#=8$*G*W;U9'LOD,6&(M5#V,SAW"RN5T"!-U9!P,MRV\H.G1<(!E
M\UTPQ/[:=OC:O;7MZO5W"%HH;"L\Y"WX@X:ISR6(!?0[T%* LE1#O<=$@*UU
MS>O&);BYEI;7-DIR6XI9VYV<;!'F6AQO^D<MD&%DP%];NLV6E!6V1=XY0/R_
M*_?[VW-:B!AR5"+(:WG]XRROQ8/L @PW3L:2XYRPT>$T9A9N%$D[O"P)J\.Q
MS-0%30/K_,IU8=KZIA74=C/ @F9@;93FK<FV2=2N$V#,\T&JO GWLQXUFF$Q
MWY.)=$$EU@VPGJT7O_XAJ9?W)VJ<@PT,OJ.X'=)06S9(. +<RHZ&0QCT:X6)
MB_$1XG#1LU_=11!U$XBKC9T++6;+Q0O:A0,YG%=1BSN7 UP:-($ I#E2Z'L\
M@A[\2.+QFD5^D5C:0KVRM&:3I4S$V;:UY&:%OD-_FEA.=)C<TD;S%88Y!/#T
M*[QI%]PGB6<U%6?#@NS@3#C6B/7C(",U^/&O?_"7]UNY7D([7E="_DW#NP"M
MGT%K%L*P@T!X&I-B:52+B_$&7G/&B1B>JL42 Q>3U'4PR7NM"U&'0+=IX2N<
M7K :ZGOXIHW@KN.>*SKVN-^5$*C;AH5IT+D%2P,(J"\?])/=KH6*XOT="(#/
M4@JS[77(:AMPHA#!2;+!F5FGV*C$UWAKE,^15D'HKB$@(-F\WT#V$K(Y:3FX
M.@.UL72;-&[;BT*/<-.?4H4/G6 &--UT$0.N;BGRVJMM149"GI7H2A=-QW@1
MF7&N'KUW]\K/6HL5?G.8^*5V8ETW;5-:8F5]C)(*!0M:C"-[@>)!.768?[4)
M-PL/+,)]0U!U%$@GN@AY$D6L, @+?NP&5%\M/]?*4W:_! $TEU![U.USGMXT
MI*!#M[4,=Z_/8O4->+=F8;JJ#=NY19D-SP6^D"N7S7GN\XS^9;-0)FMDN#[-
M47)+,XM<HV#0_15D;()Z>7^\PD4*X2^&;5Z$PS-1"!_+#<;)JI-5AT-YEBU/
M+*9JK&(9^H>A<*%5&:'2DH9,N#H;K2M]J6P4H4HG\)?W!V%>@L*_?[1I_Q52
M*5<3V7&>#2?9TGRX*C<B9LR*+_QCUPNT'BXVVGU37BWJ&6U:7%:F!HW4^G4H
MQZ]V_=/A],]&?8H=Y 9*/H^S!&40G38\6[K;N"(:'V+4:SKJY*Y<RS2DX3>5
MC6&(/[]A6'24C668N-0RS$$P:15) 6[D\-40W+W_KBDH*+HC;F*%JCZ$2S%3
M=Q"^ET!P+<$W)N%(UZ&>&((Y,*'-Z#71'YHZCYXG0F/1E(;>U[8Y$4]O*,:Y
MQ,[*V+T^2\RXX(<;!1M!DQ;" C,JFA+K-)AD+&[9_7+Q@78&D65J[4ZC/&*E
M2L*6R[U"?8)#*4,DKV0J?L7,H%]G*7@7(V/DG\"7%J+=W8@)QT"BYO$*Z&N4
M,9P7U*Y#YW56'<3,<8VF,K/E5:,%Z1T,T_L@I$V3USS?SVJB5[51S;'=^1.N
M=LI+X\E)VAGK7*:CX'7 \L-I;5$8A(4\#MV,"/Z"7T=%01W@4H0$G4Y^Y=[Z
M2I"2H%CAX4<FE$ :M#Z@1G#!@JXM;"B#MQ,A5$AXP]6K9-RJE.U6SLAXNCWC
M?YR?A![W273675V9U<VF!ZKZ*Z3:'J#V70YJ4:#2:VG%.M$8H-*,E& ;BS.5
ME[W07^>+O)O5=!;RO9D<)V;?;&:@')B=7O;-.[(!21=WI8B,G4! ?%) ;"=4
MK4Y*@:0J]7)$=6[+:E)0<[U1I.[$T!W4R_MC6#]CIQZ-JGE^+]3O]/ U/[2Y
M)A-1K4NV<6)AJ]5,=NP,8] /C5PIO.Q7/_0)L?IG3W1DUV9<6FD-Y6X^5PL+
M0[;"5UQ$7DG-_]#KI2<DE MNE[)S&M#+%9F7NT4R/(SV!J2X;OCP=FGG<]_Y
M:NFN^55U4\>RB!:PIINY[,8,:L9&PUO87ZS&.]#; N+?SQ KV0[#TP3IS:"]
M@X&%0P!E 68Y*OPYN!MTA[61 .8K%/17*"!9A&(C'MM@0]Z2W*0KZ'0L '1*
MQ5<+HE=O[9*T0[NL[;THS/:J#D5'7I.V>/<G#]/%/+*+^'?VGF3M >4 V%Y
M:/^M;0XZA*6R<@\OZL 3Q^Y'IHVD\6Z&)+:80.FONT+>%>&G$;.-%7F<B[;C
M?AN)<MU11(B:.<(VT%PDO3$7W8=]$E_N7$?3<R!.8BV$H:WI"$!32%KN4=X_
M Z^ML)%C.^;V* =(O_'DP1/J!8H%5RH47C%X/&9PG.\QO-&I-YE8*2;T,O1B
MI$R#,8//-6:0(EZ2/W1LT3G#NH-Y4@%BWB(F DW5>( 9'V(&LDPB0(P/$9-\
M(0)9YD?$!!SC4\0$2L:OF E8QJ>("93,;1%S89>O#SW+1T#A]+BSGS85] 2D
M;CA73] 5!+G_[Q?YZ[, B[Q$$Q]/V=M\CCH<^'$$WQ?AW7Z]KJB@ZPK+>\V@
MVXKK38#\HVI[!&&>WX7I%"D>LVQ C5>AQI9;1/0Q+09*XUF4QI\;\%P'5$>$
M=!_8?>A,/0G3'=Q)!S+_;)E_&W_BYD1#OL2/J>8<V+RADRN*H-N22B"" A$4
MB* ?((("JS"P"OTBDC_RXYY>9*-4H*M*Z@="[![D>!_J\T2[CXGOTZ(?I;\%
M1F<@X0()YU=R#"3<#23<M[1IOY,5^Q2@N'V<X,,1$/X%SGUL@:< Q<TC \\#
MBH J ND1T,D/EQZ?L[X>.M_SDU'G3<^.;S7J](H)25?R [>NL[_&H%(OQ#7\
M9>QVG5-/E2%V$TIDL<09"Y^UXZNA,TG3P^EA>WSR$R7I^_,@M@6+&^;859Z3
MN\E<L^5@5:C;_;7LZ!&SR;8ZMA)?>.,,(T0T1)"G^N==,Z;@,P8[_X;KZB$!
M?S'5J1C461T';LQ%D7TNBG!UML)-:4-0&9Z8@EHD51PK:?K.7$0.VW1U*0\5
MME9=1I/U&K4&/304- JY*$*&(L3[0P*^*R,%FNH)-=5E!?-WY3&Z5A-S=#J;
MQ?EQ<=JMY^JU97_LS9 DHE0H0IWJE!)HJD!3W5U3$2<U%=E+SLK-]81AT@;5
M!W@[S\3!XLY<)(CQ1J,WGCO,+"4IU7EBQ(P4-(DU ;F(($)4XOU&IM\[IO_K
MGRJP,0F-S+VZ%QDHXD#K^MD_A)1?< F_K%O6":G!U\J#Z+B<X^59B5YPS6@A
ML<@TN!CR$J'02"83MU6]OA<=3Y?A^'Q*]>'NWT=,(N>&J4%M/!W@L1F?GL[H
M%-,=(B:)(@,U1)YDDF\4Q0_TC-_US,.]NX]8J)Y5:T#4AP6YFRG&<^.>IBRZ
M-&0AZ.-%8R&*N+&+%^B90,\\W'G[B$GBZ5642#09"9=F-;5/=98#34)SN:$+
M%R5#"?P,/?-S[@49WM3@KBS40=(; //=KP@?(4?\&6W]"FRN#:$@ANCK&&)
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
M2*]^X.5WPH /A\W3\?*5[ZJOPWAS49E/" 7/R"M]9AN*P6G#S*;[W;F,=]
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
M%01&-,#,#C.(<=H+_21"DL4FT-H\56/407I2#0.N*?2AM(M2+^\'>3Z#$"I
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
M&[?@>^4"4*TWK>*XN94Q*XXE:AU%I]64@&J%HAMR2?PIA=VZ%VX 42BPLC^
ML'J$K*#[74#5##LJ28V<+A&U&BV,!\FAP=B(OF+ON('Z!8WVKE 8]&#&'0U]
MJ$QH8'?XB3WMJC.#U%:L3K?R! .3*976M7PTBKHEGY:[WL06C-FMSB1LLRVO
MDLU2O9F-GRU)'MW6 %VLI&980RP+5*G293:9LR7)H^4-)\V+ZSY3Z&V6<;UJ
M--?9LR7)B6;'YC!YU9((J8*M-+J@FM&S)<D'4DPR<'DUQAJE9'UNM3F]&&^=
M*TG>BA?+B59'U+%H9LQ6V$E*RF"'A<9O7([74\:-)KM!M 35=/A$MP!?%5GG
M$$5@O%:TVH[6-6P1;\ZP/LM7DT.V/UPAOO'51:L_IK4<U*G&W?]&(][^(P<
MV$GW+ZN-?'H(3@>04_AW1\*<5925B15F7,Y>M$UEL E+)8>EDA^DB.59K EK
M(X<G\9,KNP;M*'YN]>.@G41(%#^MOO%[#<UO5.?RK1JRGW'Z_O!ZQ9]Q]?Z\
M8L7O\W&&U8FQ]_DV'[XT\0_FT6\6?_T(;$Z83EC^]6K<^T=5'@XN808?US[&
MR[]+G>'++PNXWF).7:#^M6YO0-3!;P(4,!4/&C5_AZR+0*=9!"&+X@>E4- +
M358W +21I^ H5$%9N@XY\9G8[\*<;*LVEU-H,;O19X2=EW+CEEM\F$@_)?%S
M7:>_2\)_\#(E I (\:VS(#Y"(NF*6E3PA<+1FX(LB#&%WTI8RZT_3!)/>.+<
MG9AO:2_MA:NFJU-@&'"OK!R9 G!UH?H3)6@H+K]47'JXW#Q Y3QXC1& T:(9
MER@[QBRY[J@S'O:L^,QVF]7C3[%8_+O<VKZS7 R%X&V%X+L1OY?D4C(@EC4I
M08C=%<>;*[SAU43&GTC\>U;WNO3T&^8,Z.B>GR,9Y<,DI=#0O$<^?[#N&_U
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
M0O^.B:<$>Q5DQ'\Z+G;\]* W,#$4(0\K0KX 4B>(]36@>\O2>A :/,K""P7
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
M)@ET@<V:=-&2Q38K0CL2NPAZO4!/$$0::2DHZX>X;($8?X_G3[N5+Z]<'ED
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
MD MB-YUR9X:2,X)KC\:US9(VA[&"V,=0MR*6PF,OB5C\YF&&NS/C8UF]@3_
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
MC$A;:D:6D)P179@#SH0,$ $,$#$UDU<BX"/$Y%<'B_\QWSUKJ&@&P(2(8PZ
M7Y*&0D0;1S1+!U(SFP%Y<PV%"/@)NN)<!6WKC_L7?"%O1FS-4D:1";\4(@-!
M4,&&AH*T%$:1P3I28[G(!(BRH!L1:1SA%05^9(#5(W?QTJL.\7O^ZR,0AS;@
MB1UN_B6RW?TQ3_F?9\:Y;3H,,YLKVEH06$%?2MY7'2#?KK63LU6C"=EY_]]3
MFF%6-+,K@!<=:J(*2#OZB&,57M?[U9(^P(K-#HL*=;M:I=)\,=ND?_T!=@'^
MZ0C'8V@5 9\HD$: [JZT6:J^VPL4G-UFP5\,()>ZH/!>W1/X4L3C>=YYP8AD
MO"N,&D")WCU, VI!A(_8GA8<X5TU.#)W.E'#'6QW_AB&P]59P6W1G=%T[R.X
M#MOC"@8=]P<Y3EXP>(NR&G(\GJ=K])&RCD%;P/ =77Q\7UAX',9KI+G#ZC$O
MZ1X\ WHZ\.AQ"#@\B,X.K$]T 2"W"O1%:>4^","S.?$X ?"0.@*_<8A#$9LW
M3H*B"R/1CONB%^2^CMIETS9+#&6II1!B>]TV^]'Z7X#)X44 3C90F,%=>;N4
M9S>%;]LZWF'A0Q?2/FP5C S5&!19B1'6C%PKLFLEN;1__5$EY7NH!7GGGE?2
MG:I,;I.P>7D^*,E98VC8\;*,=\6RJD;;)J/4?_V)7NCV>@'7C &O':"J*>MW
MJA9\/*2<I%J\]_R1M/SS_X$_MD\?*@#%H)$Z\?2GG0T*5:>M P[]SU4LS2$X
M8$'?*FXXN3>3Z@3%C<+>O;/SALZ?__7_]M_T+5$ &6J*IO_>FM9[1S!Q;5;<
ML;)% 1GH B\C_!CL\C>OV/S:V,8AXJ_XSFS_O3//"==<CL?_$WG[$;['P;G/
M^!6R=[J>38\HPMC\[?[6]B/''-]^!K1\2,C?CB("" Z?_>ZI#@E-;?X;!W?<
ME2CX0=$F]NC%?T&L"+C] (3\=[.:\J.N\S.0""#ERCLO@O<1,*&<A )PO4*_
M(93/'>WY??I_QN'O#]WO-/FM 9T0!MDI-1427)9L$DNIN$8G@@@@C_SE?MMN
MI65T<W.1KE5E?-9-Q89VIU\2ZGVWH.7=RJ@]QHRLE6UP?*(SL_BZ7BGB=0"D
M!\]D8[U8?EAJ9E"<2B4:Y865::=LL/+@F=EU?6PE$IL"5Q59:XS:U#@;@\],
M?%S)8W:^/V^K4P9/ITU-2:6:\M+N.T'?]ROS+3&/C@AEP"VTIH:UDQQE1FFP
M\F"?8F%33D7MR1K%M84RJR$;$0-O1/CLTVYBT9*J-]'4JJ7GD:8P&E'PF0?[
M['+)S3B5J\51=C8TR>PZN:+ ,\G#?>JVU"%CJ!AC9G1SP=++Z&91I\'*@WTJ
M*(>C3)2<H@NSL^2$CJ:->?C,@WU*Z:RB-J35F*&Z3:V+"&1TI(A@Y<$^)ZM!
M;9AB,W6.PL6<E!X;Y6+:!OK1P3X[!I?#65UL<S-"6'&]23I/X'#E(2\U&E&V
MH&[R:'LX+0B+3M%8J#18>;#/9CLSSV[T49)!NH5\/\<0FTQ'!"L/]CF;%<6:
M6!#*#%52"XMRAM0DA>Y3??3@E!BC4!N8;!NUZ%J2&F'9AMFO@Y4'^YQ/L0;>
MFZEMIIV6-[6V6$=2-1NL//AV1LNGXCFFRS+M<6*,4:U4*K46@<)P\.VK-BL1
MH]Z"9/"EQ)J-%95>4G#E(343J9FH8&Q53C$(ENECQ?J@0??CA\\<HG27,7)U
MBRMBDTY!T7KIHK/RX)F:W*A,-_V2SA0;7)Y!Y+BR(.#*0_Y,MWM-OHM74#R9
M5!/15"^QX.P^AAY^_3Q>+BZ3C7)"GJ$Q/M,A5G([1L.E!]^_J*15)*L38X9M
MB;,*H>=)I.T\]6 #[2[?P93B*"O/5'Q#2]$9T&# 4_'##<3:M?:Z7$ YU#+5
MF9J)#?K,L Z7'FR *R\,MLK0HMQ.#,?K@;RJ\[SSU(,-)";U1G*4(2P&T7&F
MBK4'O43!]L-&-*^:(Z"B+65^F9^UV7397"*^B)=;3>ICIF3GY(7<56=#J4C(
M*.V'3K,U/XT6)'7"\#@:7>'S52+:]D6G*%E+KE(-">>$2G8X(S=IH[<2_9 $
M&&,+(I-7YC(?-3)));J8K1!?)&E75M'VM-# T>RHR28SC1$95>I^4D_RE<ZP
MSA3;C##7$],>/V_,\[Y2GX\C[*I<MQ#&JC#"0"@FN+(N^DDHA39&U4T)45 V
M7LXG\_U>IIRF_:0I:51&B4H?2<MML3R<YAAS*,?J?C*BE#/+MH#R%922NB8W
M$AN=FBWV$X<K\7RV%RW-4H!&F($(U6D/36_JOIQ/9L@Y76UU6AP5)U YF1ZU
MBJ*XSZ,?E%/W%P=]?=#)9E.2.D.SFZ*-Y%>:U:G0?;@4=PT1\!O"B#:_6DU<
M3.'9TTTDH.]+P\,(QS>=CPU@5>B2XSIR[)*(,Z[LQF[3HSVE$<.:@5];0SVL
MP7(1:+TL@=D$76"\ :PT1=%LX_?^]L_V:@V'BUBGW.YTF"R7JE311@E9L?2!
MO3><""-+$;R.* <-!M[.ES6UH4RKHP^?..=->^_A*)E-L,&D O[IUY8SZVJW
M.FRG-FMYC<0W^32SS@-UXU=$ %;?'&P&F(S"-<RD<RGUWJ"#+'ET!,4)^^PL
M)S<X":PFA9\;PN_M#_M;AK:&9SU!+7OH:N?;+3AF#6^9VO8#UZAQ/GEG^NS%
M-[TUAV:HJ6\WYGTAYA[(A1*F]TR'O>=#_^T8</7VV+9_1V H][=K)T*?U)<F
MFD<-YXNW2_F!H2F6*5S96O/E&G?A":RQ9V!?.7D[I,2M*.'EE(>DN#\I0J$(
M"B7<U.N0$O>GA)OU'5+B_I0(T2DHE/"RHD-2W)\4H5 $A1)N;G%(B?M3PDUK
M#BEQ,4H$LR[\VT.VWYX7/^5T@ETT'O_Z9,ZMJ3K\\RIEY3"#X %'MM^/F^YU
M;O=EM:&FP&-T:C[/O2=B5&!/+T*^?KOP95OWAERC0C1H!Q9,9'M7/QJT(PMY
M+%@\]GU( S<I%@_.3?H^R?(65VFHJCZ.JGJ-H[E78?%70:Q 'E;(1]?CHTNI
MIX^M'7@=%RZJ&_PT3KJ2CSYDGY_!/A=3*A^<E;;UZI=H2/]@/!3>\X%#YZOK
MBS<0*7<0H&O+:N,0I$-M\9L,Y33($T8A)X7:XCGLL^OK%C)0J"]^EYEV_:Y"
M?3'4%^^/S\^@+S98S@BA.=02O\E&L(.R:W3 YB<A0X7*XCE<M-?[-V2A4%W\
M+CLY/9A"53%4%>^/SGXS>H*41',)<=N;7GO%Z0</GX4: '1_EV3YI-SH _XA
M'P8!"OVF=SP;\Y6DL6<._>-TA?TW9,1  ^+[%,TG9<I_)-7K+^PV"OW(E4\[
M!_[7GR2OP ZSSN!)7K5@JZ)KS9Y\B//8YCI?6K^]_;N?)#/'',W5QDQB1W9$
M]FM$U6 YKR]RCNH/=&NR*J#(/!I/<9+%QF+VJ<,FO]T6N:)Y_8\/^R._60%N
M+H+//#7<;A.,THJ/&78Q&-'E44HN6K"M)/[K#XFA+XDX^FDKY!\DIS>=*!G\
MXW!F+%WJK;W!D<\/6-^9#7DKR#IF0N3U.[GOIE*<,R(R3>;&>#6S$)CJ*KXR
MAQFEE.C!GKIP0F3B%?,;G_OC .T*BH=G309<CH_O=HG!;I>7D3M.4,6"16Q(
MKHWFXXM6<2GFFL=/<KF>H.VI"$=.@31V<C88IE,L,^GGF?6X@C"K@M[4,=AG
M.G8L7$9?T<]FO?P@4;SI;,?@'\=%=0MOA&/ ,>F2QM!IT\MNI5:</B'FH$_P
M(=P-+C6N<0\%_<8U9H!4+LL)1DZ5QW$SD^R1N@5Q#DYK)%#?:8T/47:[QY+;
M_ZCC&7*7C?Q84<S+5*M?I;-+$+W(-YTP>X(CYUN3KOZ.9IG-3".D<HY"JS&Z
M-JO&966]%F_NU_D2S!P!-+;CKGP,(73$KE;&:+)&4_V-B2[(1:52AD,[\%]_
M*.*%BF)?S)E]\.#(6;&0NTS=)H)V6/<;NNUY@WXV(I[G*;HK)@;#<?0>$\_Q
M'J&2'%LV$'+"I$:]HH"GU\E6$4YQB4+0!-=UB)FW\2,%%P%..YE+G\]C\LE-
MG1P/=C:7ER'/[?'D(O1#LB0LY8E3) )B@!\>PWOA(8#PC#0+3EX*@/0$U2AW
M?8J7T3A7C9&IYN;-!,-J@PQ55M>33>[1LBL*FMVTV;J10HMQ9+78*#(19^"@
M/YA=$2-?*.+:)G@ &?NQS/+ '^#=3?4 GM!#FN^W1<]@V.O?2O1H+]=L;678
M%",QECGJ%T@[VK,!N@)3G2!><?*G8^N]E:M/,T+N?DZG <39$U*OX7)[Z)R1
MX;"78VO:ILUD%5O9E*:3M#2$D[QCY^%P]!5SF?5VZ2-WY]W'T9_\4R\"=H#W
MTY\^34ZY^PD%Q?8\+9GE5JK3(R>S3&3#M";HR)2K693NJYLNO6J( ("=9!;\
M-?&%SA3T3)8@>:/OD= 2E'>_4<?W8+[\CR;\%Z-YG_G=OQJ&^\SO_J-Y_NH=
MGP+\\C^:\%\,-7WF=_]JC.@#O/L3!Y!;CE<UHND18347H*T3,;4(]+6&,>4P
MIGQON_YGQY0]^]T545H=,9Z$-C7X$;,2]*%D\( O/HTKS^M%O(OGI#(J&2LJ
MEYXEZ6'.!C9\&%A^",=H0,.F07&,AH'E,+#\'0C]/$+E@:M0 V_H%U(N3QJM
MG-0M&6@6V2S1/+>N%I9U"*QA3#D8RE484[YS3/F<6,:YXOI90!G;"6RQ5V#3
M/-ZF48K#M'F?298W@B.P843Y"16G@,9+@Z(XA1'EGQ)1OJK2]$EDV2><K)66
MU8E<TR2Y7:Z)ZXG52]EY!W[#>'+H:0_CR2'APWAR&$\.>3Z,)X>$#^/)83SY
M8>/)>U&I,( <!I#O;<8_= !Y9(BK*];G[(FJ3X1C%IODLW46+: SG$X03,QB
M8X;=QW 8.B:BT1<J=NT6-P'DZ\?Q@ 8T,!H4#V@8.G[RT/'MP/.<DF2"556[
M2I(=SDK&NXMUO!O;].H076'S>=*_^?R/PM9[ZU9A_/CV\>.[R>QG\>.=O"[Y
M.%?@8L.,;.5MM8G7XX49(4)Y/3-\3,"(1Q@^#JCR%-#@:%"4IS!\_,3AXRN#
M\"<Q8S]C]"U\'$VOB%$FMARBV9$@S**+=5N@''4)AH^!OD0=$S[^7Q,^_A!S
M@^TQO+A@3"W#E,;K?=& _V'X:8,FFA,APF^)&9&VU(PL(3DCNC 'M@-D@ A@
M@(BIF;P2 1\A)K\Z6/R/^>Y90T4S #)$'/L#_)(T%"+:.*)9.I"=V0Q(G6N9
M1,!/T,'H*GY;+^._X MY,V)KEC**3/BE$!D(@@HV-!2DI3"*#-81(#.1"1!H
M03<BTCC"*PK\R "K1^[BI5<5X_?\UT<@#FW $SO<_$MDN_MCGO(_SX]VVV09
M9C97M+4@L(*^!/SFCW^[+E3.AHTF9.K]?T]IAEG1S*X 7G>HB2H@\.@CFE5X
M7>\O1DNJFVPT;(:?+(M\F>XP"$[_^A/U!;+C"1:9N7-B(?%=D;-4?;<5*#V[
MO8*_&$ X=4'AO:(O\*6(Q_B\\WX1R7A7%3: 8KU[F :4A@@?L3U-.L*[JG1D
M[K34ACO8[OR13)"K\X/;<3RCZ=Y'<!VVQQIZI5\BXOW>B,O&2Y5<MYK74UGZ
M2+''H%5A^ [*.KZ+KC/^^C72W,'VF)=T#ZD!51VD]/@$'!X$:J#O35R8G^@"
M0'(5*);2RIM<#+YKXC$%8"=U!'[M$)<B-F^<!$T71J:[ML1'B$.V!&!E V4:
MW*#72:[>MK[?.:FPCUXJAQMGRH UNQEDS61EO;F.(HWD1J"O=_S1BQ]_G90I
M<HH/992MUDKYM=(5LW'[08Z_V&I)^"892\BI-LXM;+JA]C#[UQ]54GSNB6]<
M'%=0:MR_P@?]E@"*2,-#>^J;2DY:& NZ#O#$.? ()'RDIO#J@RAH7GC\HX+V
MIBZK3EDGQ-RTHYT*BJ.]SGEHK$MSP'@ >T<2N)--#6BR5X+0"X10(5$J0(H<
ML87V97]+.H=R\/O@$D]B-[B1+VB&G)2K W/$X6NCH8CT6<'3@Z_YNANS(W?1
M<B-/]E;EM(Q+1K=0H5IC,RL"2S..O<2H^/=TM'^"0*3#@7ZG$4FF$^-!BP&/
M0-@UT5O&.IN)<%LB$1+ =7"MI.5442KIQ58O)^-U0*0H_H)B?G7-)Q )"B>O
M6KS^T;I\>3-MH?B!1[T9KOQPJ%L CQ2)=RW[?2TX2 ;7I07R)%-K^U7[]^?;
ME;EWDQJE[3FF+/ +X!Y589_UH?L77\.J/^*Y'E>4;)F-IZ)&IM<9K!%P86+Q
M5[]LA3,LJY.D]SKTO+[L!H:>[ !)-<H%16.$^HA61*5'"3&7GI^/TSR)GI\*
M^FLD[5HW\$+V-6<^M69.\[+<;>CA:5S#L/E*E)-Z [F(E^QZ41)Y##MYW.$G
MB/_W&84.*VQF^");F^3R##^QLPEC/)LO2O!.3KS$HI_/:C^*&1S]RA: $BFZ
MTTI=\_>]X0OY "S<0W?)B#@\#AV%\%^WCLN_N"P!N\&5 V]NBS$1!#,R I?'
MOL%]X*?9=],X>]WSPXS>N/1VYO>E@>U( _ TCETQTUXT1H^S\HQ+B8FQ5M0K
M7?&\@,@AR^[#':R04XV#R(7#MZ4"9FCHL%ED\%1FF4&SX_XB!]64UV\R[0[!
M +T#0;O;HLTM:$=M)ALCO6GD.#XZ:Y!VS>@2*,"<OPUS/H5V4)DTH(-56@K*
M^L41?%YWY3P0)/7$$=LG*78F2>?5.8/D1V(#7211(MK-9W)RYLSXY/DD30\;
M#,5GEY2\5N+=EF#:EC2E?_TA7M'G%,>+T&[2WB0, BGFT%07%\93DIN/Z/JM
M:=<Q"&H0Y<0"Q^KKBDK;"3VCBY!V^&5H!U[ 5?? ;G>7I@0^E^!N/-UN7V0?
MTF^6XHT)P@JFJ0"D>?.>WMF-=K3G+&)8,_!KCG$-B;V$JI@%-!O=T;=2,+H[
M!_N'ZAE0:\::HFBV\7O_=<Z.2 V'BUBGW.YTF"R7JE311@E9L?3[U(GA1!A9
MBE =PW/VCGG/1[TO7;2W_29,3&B"/205;2A[:0^#OM$9ZA3)JVL4)ZN+W%3(
M2#,;?)L N'$.OL_4+>$:J3/G$L==OQLD"=CRZ"P')S5C^W0OC6@(*,?/#>'W
M]H?]+5/@X1-7)F;\"G%HJ&ZS,!!%&)N_><O4MA\XV4#N)U[BD;MF+Q/)6P,_
MV>: HO^!+V[JVXUY7XBY!W)<]5:,>/UK0?I(6OH\'D97QX!OMZ>V_3L"T[!^
M#W2!EQ$8H?B_.3 Y(,/^=DP$ $H?GND1P_GB[5)^8&B*90H?WO,F>3#NPA,X
MXW_!R^S^_&9F)!X+*1$$2GS9I2$D12@4/XT2&/H:#TEQ25*<6&?]U4T=D&G7
M;\^+GW(X5T6);Q]-_.N3.;<BZ/#/"]=?N]JJJ<T?<7;Z_;CI7N?VD*SFW@T!
M/;((^?KMRHIM11;RK;YO(83?#\*O<33W*@&[31>YD(^>G8^^4ND? 9F]&MD0
MET-YNKL\71V7;R!/;DJCJQYJXXNU=0BYZ$>A\JYE08C+(2[?7:*> 9=AX-@(
MX3B$X[.81]LUC@D!.03DN\O4.]?T-B'CR5R&>V5"%X7M.Y[:,['@.Y?UD[)@
M21H+KB7WCU,V_^\%P/_N;8V/R<)+>@4,;^4S5VGS[(CC(YS'-MIS:0"__;N?
M)#%'9==>OX95K6%FM%VB4XRDXY:*5G%]F*J?59L$K0"WG<>75:C-8;]/2MF\
M%N5B#$5-YF2L54'C5;%/P2;)./E"XI_7"H?B<8'+)>#B<7R>L9.E_\;05$:5
M<NW\2&/XQ:!GL2V>%0?T<0TTWSCX0Y?+/1L%WEL[)H[+N)F:I7D,E7@S9TRK
M7"M;IP$3D\=*./9*?M9W)MB&T(=,>O@?=3Q79]UBP4<S<8+5:/?NH=:@#B0X
MLQ3A6W?>W^MPX43Y@9G :CDB!3"C2S8L-16U41ML"UQXL9<$Z7??/9!'+3 W
M6U!?])/7?3Q#YQR\;WG=\6"!M5<^):F1(6],GDZI"\:M$"S][LR;X9_GN!IV
MXV"]DK:\"NO;?*Z(,=+*+=/3'B-;-5G(S@?XN#&H]^/PBDB\D-1AZ?2_EW7?
MW5MV?I9!%(2;)-C71D;3QX(4&@J/'M(([X>_W0\[+O^+]9"IB>5"LLS%4 NO
M1C$.B0\SR7H_X5@/Y+7OA3MS3G NB0<]B*>Q/<X)LEQKD&8@-*: 7"WA0)-K
M=(%=%>3Z.(7V59FWY4*\B[435ON\89BG!6>8Z4"8HB:Y1J64W";J!8ZTRF(?
M0YWH#/X2)Q+7]58%D:&")7B?6BUW/Z<;35G[3!6[2J"'UM$%-M?G*=1:1]%U
MFMKT+).& D&>!QX8G%<Q>-R@SW$7\3.EMP7SW6\4! KFR_]HP@<SVG'2RS^O
M_5'9FP@4FB"A"1*:('M*UV[XTZ?V1WZ>+R?5G#!'B^W)8(,M3"0=H^'4PM#^
M"(C4A?;')>R/G2@<:8<TV"9OJ9TDPZV1LAH7VL4IMG"F*5_5#GG,^9]PMY"@
MDFKQ'D0X':[V.G<-%4 :R.P3;Q<[OH6[N4;KKCWN' J V?3MZ^/D7HSL!%6#
M>J]1O'7R^J__]ZY'V4Y287=03?^]%<>](_!ZH^&.9(H"XK9 X\=@E[]YQ>;7
MAG<D\?@K3F[=X;]W(DVX(A:/_R?R]B-\CX-SAXU']T[W76-1][?>MQ;U/ONB
M#YM'0MCD!P>,?24*?@AI$GOTXK\@5F2B0V3Y[V8UY4==YV<@8 ! E'?2ZGWT
MZX_3[A:V[X4  0>#[&C/[]/_,PY_?^A^I_E!9+;]=/5!)YM-2>H,S6Z*-I)?
M:5:G0O?A4N(:HG%^D^/VWJA-=[3$P4@(;R*%4[4: 1@/SG3M#N5T.EB[<RO_
M%^*R,Y+"G5CB'A(<%Z$YRYQQ%TY"DS,I%WZG/G)2G)YCK-'?6S![S<UG)IW(
M)^9+EJ$R64)A$EUS?L:L@5O,P\D6D6)_MHQ;*%]/+K+FHE&MR#8<2'"AP;&^
M0^D>9>C14=1.%I!!8BH84[1M%>):3DW$C6@PJ=UC];19$]0\.DMQ:*_6F8PW
ME3JD]C='T,V^'G[T]P&%[\8*OR'%&T)L.^E;GF;HX=2]Y\P$&SEN.X1ZG616
M]"!CV&BQR,71RH:D]34-APA_<W;>[+%&I=T#-6Y,:9UM<H35,)GUH"WSV:IA
M,AD14OI2,T\^QQ'_.5K.D(8[#]+R-*=PDM8)8M LQBQ638U,E(\R"D9EUYUZ
MZLRQ3'__PJ.'PM (&B\5QU2%JYIL9I*PI1@Q=U2B"PV%"=I G\M2-)9&.N;0
MZ!"RU$K.^^BD1^6H,Z<R78BBG5XA/LJDNY9<3;:SL7J!&&4&SM2MPQ3!<.K6
ML806N]4J$27[=7G&#[&$V(K7NMB9(YPN1&B"*%61\GBT0-<+K)6IF"HQ)2\X
M7BUPHGM9BHZ8 9&KL8K L=B82-"QY9BQ[BNZO?)0WM@XIC"L9"[JFIH<92CZ
M@O;I]R9T'?I2 ^/S>>^X/6EVTI6F66UUU;P* %)H\JLT.&.@F%FZSZBJ=+5:
MK2AQ.LM58_*T7ID;"C\7KS2JZB $\,&9N3\0[8S^G)KI]73!XN[_D8A[!A%P
M",);B[C \,ZO/U#E%<9CE^DC)K^"'D&PC7_LB32<0/T:"LU<UR!/>6(DN>]D
MPG>*""LXU!RJX$!_Y=W7!N(%G?N\Z*C@WO*! 'Y7>/?+_[JC<Z\P\W@.>*V_
MB,GKNK[ .VBJVK++P_) 9<7Z25IO.ZY@]@IE#'31C*T'UB1%#Z;OU%;B%.-M
M>] [R6B PTZYN (LB"HX.&<WQ@XC$7Q?OTDR1$^BQRF4+ULY*K\HSE=] ))X
MS,>O\Y_3QM:?>.%=C0[G%I[<D@Y(G<K)_7[61K,L90[,7FF*+H'E@%,^=O%I
M=-A>4V?;D1]UU, 0UE\WK7'E_I2>#V<,CT^%*I8LB$KJ;H1%4]-$N3O&-8Z*
M\RS-E%=FEH)3X]'7Z),)V <Z$)W$HM383!@F-8]V!;298V*"?2\Z9#@UC<Z3
MY;J,$YHB-4=Z8:)"OU/41\$_3\".UP,=MQ"XMG2!-^ /W_3S[!N-7VS$\0G-
M=7#".GB/R,B"[JD('QE.8&S V8IW83L[T05ENT7H,W.=5SP<8@H]78;C(P/K
M@29F@+\-P4%+8!O@0*"7<-^)Y6[1"8IZ.W,/07=:1SOS4EUOW$@"A-8%Y^EP
M!*RW0S=>"QYCZ6 [,VWIQC&<30+*(8")P%/!"LD49L:!HGWY%(O[JMG\-GTE
MFFVTQGPR$Y6%1(_6K F_4ED;RN,O-X2]6ZEG490M(+49A^#U9!$7C9R)B7W\
M<*72M%9Z3RU$T;602Y,IA:YI>;I/]-&/*ZEYE=3B3:4L9_NX5BF,Q2Q)TGWR
M<&4ER^1FT86YX/A4?L$8ZBC:CM4!@A^L1&1=T<<U:L.T:Q.):]0Z+#Z#;<P.
M5LI9A:@TV\NJO!;R)2.SGN?SJ3I H(.5YB#12+-RE9*S%;JB#N?FNERG^_'#
ME?F*G@-B8ADR.S46VD*JEY&&W4\<KHP6)B6S3_.*;,UQ3*/6Q46AY!0P'"QE
M4RG";-=K*8Z*%HMJ;%6),L.Z'Y'2LQ&-&.O"'.R!1V.:T"T.M+H?D:JF0@H=
M7DEPJ34F3^4<45BT?8G$T;K<D[+COCSCXQ5NP925#5'W(U(21\@X,A_4.:0]
MHQ&V-=ETJK8?D:9# @6'+R305"PQ673- BKV:3\B]:@*GB[AG1$S:T^KC6PA
MELE/Q3TB7=EB; A+0;6$C*[-MBE@;<F<I(#,@FM$/[0>^78_4[8'*4%>T'W;
M&O"K-A?S<CK!52.,:/,OZYP$#NS1;<W$KL@51S'B_R+;DXMX5:#&2Z0FZ,[=
M#0,>U0' 0??R=0!YMQQ&A2YMHYZ*L@Y0CV RB;-#1)%4X;<SHAO^=/#/;L:0
M4X0,GK^-J$<\-@KH''(GL.7,%G?N6R>E"=K0SA7I7+_.]6YL58W1]K5T][5V
MH:O;SBC?RJB?8-) HX!I";M,!;^YY%E=L^9]1"T)5C>GFTP64X@.I8Y2B/)1
M8O^V%*!K.,?\D>:8Q\G7&!F.IWU+<[SGS&8J'!0<"$I@^&LT'I+B@J0XL9KN
M2U0*9$O^6Q66_ATF?N8D75=BGWB2[E9__M8H@E"N[BA7SS0%Y)VX/>D4D)VA
M^GV!NWL=]*E]J:XX_(,*0EWX7?JT>4(3J.ZWUQW^<6Y:]]>3/Y!3(EY^7I&=
M-V07Y"+>&AI6JTL].E6;:+6JB^-),3_++>T^ 7W'T?A+#/T\P3K@-_/W6IYZ
M">D.Q;4Q](LM)<TR8/3K@QOLT:[E8-6O?V5^/GK/TPOE2'^==W(YE/"4@7<E
M&>#DP%?XX,>LC0LEN5@EY5F7S4OXJ$XW\W:?].8'X<1AVN3W1HP%0<TX!U!<
MHX97()I<"3GNKFH$ TP"IG7<LL-,L-#&S<O^&]3DO6P6&&C="DAU[ &0#]IT
M24RKML<)EBNF4KV.D<D-QYK8CT*T(:@7E/"KKPB^$^%[R+(]1",R!L<8&5B&
MI J& ;-G!I+J1EA?(JI@AIK*0VLJ/QA)CM);MG*0%CQ0T?3M>GJXL"0==G9/
M>M*1>A,.'YQI38P8+2T;(QDWL)2YJJAQK%+WIB("F#E,POR1.HV;7@DUFK?<
M.LG)S0<\IT:$E9M!$.HYM])S[MT8/[2S3M5\]L JXXH-XTG-WZPN:=V.%=,I
M7>0643TG*-E6ALC1[A [8'21ATZ;BQA=P7-<WF+ P$]5=1ZL@^#]=:'3FW9>
MU;7+I-E4#4U4-11?=$8*4N?(."NZ8\RH^ N>\*M1_H%:C-?-*-120F_,4^+&
M-IW"<ZND/O3K>@.,NM7.YHH2CZ/5>+UELT*VE3=$=[@51;U$R=@/]*Z4-%5$
M3$&?A2I%J%(\&S3\5:7PZ>WWAA7C6GO5SZWC(BHA9F%.$<5!=U3W1A-A+S'2
MKUW& 58\9D/C!RQ)^:3PYL:5*0?U1L< ,&U !Y-?@3D_G^O:2H)5G,#TNW^O
MOI/$])1F>[N(+"Q[!9BX1\TW8OJVL\E3LW167!%9;I;&2(WK%<0^)_[Z0\2P
M5[_>_6<TM'F+9\(N'<(*%BR[5<4#8;\YG5=%-+9,2Q?VV]C-]WA3VRL*,R?
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
MX([YH7,-;T.88":B_2TT=<2Q!*(OXKUG*/D<5.!'*D4??J[--\_[!TQ5.DN
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
M_$:EIB'4/D=SI<4,FCIH>G8?0\=<AEAQH 7<:NCAJWZX -^/P[1;FTIY!I3
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
M=JR%JT/UPAP5<VS-@1J'066TO9VRP =#%/W;@;<,II[LZHLMTE0 OP]5??=
M=??,XYW\A^=BT_#=*-%?+4E'73<E6P8I#%HS>8;I6WT_%H7G.;(NH3==0UP<
M?V=[#R]8H)ZHOWSZ$_:;LP:_$,;BY#=?K]_.#K0>7F"BOJPI3+<6)D#M6+<V
M9/L(*$?=1@(]^KHI'<W=R4&GL!FT6MO9^SFZ#P-^^F+]/E>E>S, %<,TG?56
MD[;=6>&;K70%CD7_V;T6*88&'*C,"SC_2/S2=BJAPN_^CK0+R<AT4,O5+2*@
M2@ TJ?7W'T&I+%S@0>&C9\%;^.%69& 9Z LT)]O_0?V1;$U'(]I_S9])_G;F
M)=]W]6FPGYIWXWHKZR]K_<O;/C1L RBX9]V33<<+7-"R2Z]CX]#0D"CJ2!+<
M]HTJ=L56="AL:#&*C@O=6+L '0'X<L#+A[M?PX_]@LNA5W 4@6'%P1ATEJ3:
MU\>UI%_P??4+SE)/&>KO[+)U4FLB;41'T<E,Q&$F"/R)S253$8>I@*#X2YL
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
M\8Y4?^0:3$+:(YKA1$?DCL:*%KT]2X4FX&< @T IA[=79-'??=\S@*9]^0Q
MP)BJ%TA.90"Y-2T,@"4 0[WU$4E11+3X\E"=:(5U1V8Q8HM$[QJ1X?H-BZM^
MM5<?5:;V9;^6$8?@*U&M#*"E'N=^$]UYN!^]]A9'^0:@G#S01 1R7,BDQM17
M4YG=.4GZJ6_%O7-N/YXFP$8:"BE"#( UFU@=C_79[$V0$4]OOONIR;+\=:V+
M8V1(W=G[<7KMNV1T')IHEC*VW4ZVZ<BG>&TTBR6]5O@>7V#&]:*C^U$-K NG
MAKMI15%$)S. Z^=\@B4Z$G4YUF^ZW!H13',2O%WH)VKY^3DP\UA1.M(@!SH-
MY0["&I$:(JZ6>$AFORE_13 Z6-50]LA<N""DD ^Z6>Q%1S$ -\R$-Y+VB!KH
MZQ/B=Z<@5&?HAMUP1=(3_H4H/X N(?86$@MASWZ-VO,('DZ)UPC9ASA?D[!G
MV1!QS*?$[>;K4NT88]M)?D.J!_,6Z&XRL#UOJC4)VI0R%MLAHT;,FPS0IF>P
M0+WO'.56R_5^FEJ6Q $_\OXKXJLA XC$T@<D9(,:_MR <Z@WZ"8SW-=.?44&
M@*_$TI\8(N,80%EU= 5&BCZ Y*W@#6C7,S<>JMPS=ZX]55[FD6D@8<EQ4JZO
MC[T*W8)'>\)VI8K01&-/!M"^R !B2^@#\$TM!_3,@T$&D(S_R0"H.A/D  ;P
MTNXE R#8HDE=\-EI0GDU3;!8C+Z;Q0 >6+,OX)>SP:V2IJR1$.0D(OMO=<9S
MWCKU4/MAN<K:"(U$CV?S^^.9AIGV:2?0DFP?LX_7G6DBE*HT,@ @Z)4%22RV
M0?J'MFOUF\^*%76_=3=(L!M)W%7OO>,ZS<8*1L % PY+5I0?'8\FVD\IS@;4
M%P09S]IGN\_5>_5D<F<';"5Z$DW4) Y<E/U\<<NGZZ.T*#8(-%0:%3G4P$OO
M;% :TO"<'D0,OU 6'?]^8KS__M=X":L;ZT_."_0]#$',5C>F_!8<VX%-DA$E
MBCZ[_230:6JF>N]\XL?+2<P#)L9A!45W".)K!C(?Y[ 4);$5D;GNCA=6<=OC
M-Z]1JW8MZDZ4YK\?STJ9LT#TP6=>$BJ0L<<&@E"*7AF&EN>#?SM^Z54(/PDS
M@'-&B:.;-/0!JG:?3]$"T0Z7L#8,9-F2()6MY2=.^3P3R"';P9*=2/E4(00Y
MD)3W/%6K9<)'- "F/!+OIUP4%V; 8TT_? X(]2.RT[GA;R>F)SQQ8J&:OO[7
M6H]XOY Y(UW* "H5:E41,K425M)*V&$7R*4*THGH?"\RW[H#8:+#'](I9=0C
M57!=P8'--O*DK, T3K-."72C.Y5$] ITML>MSA0:UR#N9.E[ZZ8F!QFIWA&3
M,$5.3I,[H75\8CWRQ$8F3<N.*X>/%=#^E8Q*0Z_.ZT%G&4#,&M5P3L\>?Z[_
MY@'U2P17$[D'FC*OM_4 Z?1P-6^;]54I;L>26]=-E&>-TDRO77Z7P&8N& PP
MG<(V02?VR"/#:"^5N&K)&RF!FM4MR9*SKP:6'SUV;F>)"CRTVO.E#_4S=;)4
M%F9-[V, 1$=\#'G)E*(S.WJC^K1U4&RK0/4:?#QAE-]@4TUZ-P>;3+4%_9"'
MEDMUO*_0UMO&>^63ZJ=$<X&Q]H;&LX6[Z:Z)>P+H)JW0,WM6XVUS!$%7JUED
M;//ITLD.<>]ZD[<M')#;!7R&C\O4CD,NSV])-6*(EH2Q[4:G4/L1!L"[V>-Z
M$:8Y75NSZPA]N\%IC9ZRUBN D+ &-!S. \GGHM!6W681//MHX3HU/B!VM.A=
M<T,Q!0HNZ 5)/P/MDT]%$*=*/KXI9PU#GDY9WKZ3E%1^VBI#L=\,I;F-36
MEU7 -"9J,^%"/=KGH]MHG)5W>L1&Y8.'V7-\!_T4Z-+*GL4DN&$M,2/QNA6S
M17 ^8G!+W]<G1^(&O]DK0='V_@]*+HW?2@U@KS"\*'E*R-Q:Q"9&+,B>ZA7,
M]U8LV_NNG,<V8/;0+EPVAH7?V-H[OZB7E^)G08R)R/?(U'OD%/ XWSFON/@U
M]V\Q\M;O<H(!5L]_E*/?YL*9;Y_"?H)3#B-6" R LR0WC!C8J/UD#3K6_8T2
M:UN)4GD#VEZFH*7(Q/@+.CY&6VEJ%4.TQ4W4A<+Z5E&B%#'KCN2MDZIO?XJN
M;7B>^*+_,W7@OC!I2GAUYK$FI?FS0YJE:0YTTI<BAX>7[6< I3%[#, PH6$6
M&XN;24&N>Z"WCQ/0B\?QDQJ C4V_ >P)Z \7D!/E\]#EC;TS&*X@Q5;1FEOQ
MM%3OP*\6;PQU[C^X-AFHG4Z52]B)HLO4[YE@=K*6X7]DNJ40.C<G U ,1B\C
M2^EW\>_138=P-Y#1#$"Z03"HPY9$B+K'  0)8TN1X]R)Y0<7Y_=T?2I\W-I-
MX<E D"!8#Q$X3_Y&C.CH\7T/8KVCP"R(>!<J!VY1;^C9/G^/_93HV1ZYUEWU
MXX*]>:TWL=:!1S;$)_8%/+[$ ((0B[H$HA5T;""H2ZNY7AHR)9]M]5V^!^4!
M3FL!=\/QT3_CG=@3J1R*5<07E;?)MIX9@A6$*Q^YZP-TKB=HQ\S&R^9^C00
M6A1%CY38C-E'9<T/:FFJR?3*U%R4/7&BDR=JK>VPO['ML%6I!(O0!&(.2Q4@
MS+LP@-_TX:ZA\"??LLZ07)Z7/%DF''8UB#G[D*^U7=YV:7V7B_8NA[E@*5#-
MT0./Y\\N:V-)VR]W<K^I=-@YUX)5Y?F:2)/K!B23O'U6ISF:A)DHVN .V/6.
MGW-(H9@7G81O0BH8P)P2?'8)5Y%"XQV!4^3 @7G_71P#X"/3LG&+CSUPSPG4
MNZ"Y6,#W[]%SPQZX[2%P)!RNV$L5"2$_9&=O(\-^_]Z<$GIVB?#[1+ _)UH@
M5%>'A\*)+>1RTG9,J')>T\O%$X+CQ97)#0%G)0?$;EY+[U:7J5]:\Z4<Q"P_
M)L;.BRVWN<_!)(*$+/!;^<.^LMX3Z0?7X[I$4 @(1/\1TSKB;X"FH0?<Q*NH
M,;@(VM,W7E]E0#>L>,+KB63 PXP 4DM^RTW[,]JYIY(-=86:L*]Q?ZF$"#_B
M*_)U"I*H95<_5,<Y,P'E1;HV*Z\J5JC=2CO>%)G].>@3.S$':O4+"F*_]%*4
M%E:22>9D=Q(A<K,76 H8MWN1_Z;'[V[Z#^)DAG^6A^RGUP]TN&A"V$]0BG(O
M];%*#(',]I$!#$08R!R#SQ02*N)_S.U!&,!M'2OZ@11*\-H*Z(1G_&/I'"MP
MRE2P(E40,0-M(3RHJ6XMJ N9]581,G[3='DDDHA;-:^8)57&NA3B!W!&#.!O
M-?T;^]]MLPO:QH4^#!=@ )ZUT+@TJL'PRI9]_]=29_B!]B,^D1=.A>YX:;E?
MV?J1$DQ&4@*KEU<8P-G"<PR@X0VX@8\7<9QP=T(LAMG6UHHIR+Z[Y<C;ISTS
MY2I[\S(KSR8[WI!__/2 ]"V"J/B(7%N#<C^5<[;8O%62_LKW]>+X/>4[@2'W
M]J[&:$JGH7.^I@%?1^I1KF#,>.L?]]*^D3B#CAE1KQ/5?I;A,/182N9N>Y/L
MF9^Y2<DI=K;CX2<)XW)T;N4Y96.[F@$Z=+&JQO*QE+!+H%/LEQH,"Y74E)T:
M-8':>) ;C.@*SJ<*2Y'C1HYEWF]06KJC+KU2N5[<%R;"SS5&"X=?.P3W1B=4
M5TFV4<<#H^\=N5<_--T7H3N!N7F[W62_.7]K*3N3)9L)%D^#T#DW]O2" LT?
MM$.C:Q0&#D2K>W%MVVI]O"_^O(_]*SP*/0-:I0(156)S9KX#+[O/I[)0_)A
M?:(/@OH408"5J5!%8LTHPW/9L"9]'>+0"QC)\JWV^!C2X^>V*$*MFLGQ5-H!
MJ]":;85SP; V&$4!WF@%^[%Q+#W')4C1YKJ^RVI\P)Y=[0T)[OTRC9#5(TFT
M6/A,YB#],UJ\[LP\3-BK2D8^;0!>1KD5<NW:H3+(@M4!K<ETW]5&UAB)+_>%
MF5;QJ'T-Z/$O7SX%M;0IO>[,Z<16/:PIY#ZC[7J.'ZD"^TDN956/RMS)H(NM
MM0;27OBCN;&)E5"*A>_R:IWC]3F%ZUJBN_+FNN6SI>$V(>AR9F/SN*5-Q/()
M!G!3#'46Z26P<SHL*NC\PJW5#Y_81<X'N9LXU)7FC7%08RI'E0=ES*4K@CJF
M%-/J.7,X[YE.+QB59AI-R3\T^MSQ\3!GX="P=8*(@1T$X(O,_B=S^Y6#61\S
M@'3+0?2R9QD#Z!?3W/;_#Z,:3$0H53"#;N7=A-Y:*F  /Z0K]T:T$3/Y_V'4
MFGG$-ZY.YPVE_#2NOS+QD+_R,3I[54W%!Y?^'B$>M>.K')IYYP"T%@.H@C8:
MT[+@'C ARN$3]S4^*#@7'_/D<S(_940I"WDL<3KDD>9N+AA.*$JG'PE"OM=
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
M(E#/!33A]UHV7@6#K!=UCPF3$^1K2GSSO :5F#?F03[\>6ZD>4HV3O64_&%
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
M9YJG0001L7*CDO@]*F]1=!">=53;Y7G I[6D6Y<3F$X"UW:MV:9006# .S"
M:U"*(XJ= 427SH8HTQ6)WQJF[#F$OM</XN4;V!&Q\GNYOJL1R-RASESSN!=*
M%ZXE-]D;2_! 600FK=DW\O<DZ(/C^<N%I"PKDL9!\Q3HU)5>Y\'Y6\>4S>]V
M:=^/0_GKYSQ(\MZ5)%;';^(D@_PL\!7FB_[*<A>JS0O-NP,FT\_.B%P.:RJQ
M_6MJQ5]]Z>'D&W.O-DS+9'!%HUA[4B3F2Q=KC'B$_,."'$#-="8PAWOS'] M
M![HP3^>ZHH6:8 !"I2E;Y# 0D[5/X\[C9E)AZ^Y/8&0IW _Z+GZH9J$)"U P
M=AC;D5#H;+VSS0?9GOMAKYU[-)X"O%\^F38"=X.9G!NDB57),S0-SW&^5+>7
M#NR>K&^R;CXAL>E9M@+7MD_F\)K]>Y^)AVI#\1FD&^!!W/AC#D1V622K%B0'
MY?L<)]5XUD>H5:@Q[T#ZQ<'<CQY#SQ_F#3U4_\(*>AN.1U\K:&^F+C.* FL+
MQD03K#FJW2TPW1N1M\9J\5)9,%N7!:J65@=(T(_\ZM0WKM$K43OH%OW08V"E
M\IF%4OG'&0"I!CZ+T1=#]Y\@QM(Y?-"4*0#%Q@#^6L^F"$13Y#ATSK@=GH#2
M>D_")6NBA1S'/4I[6223.YZ6?G*W.\I^-2JE'6?XU_E\*,ZSF-]TH7Z:O;&Z
M1UYZB GE/'"\5Z\MY9YJ^,G^4$[JB]L>D+S?&[B=*I3#BLO1I/QV<"-4&A1^
MS%E)4VQ."G+[P,WCD[^D,D>:B:N9O[WR^=KYYZ6?K%E18/R&PY_B@%!'$J&I
MQ]X9PT'!.!(K5Y?/:^SE1]V7OG*6G7?SLO>8,YWKW)Z)9D0%7,BW*C7EN*-3
MO"J= 3S&M.-NH^10G]%<*.5)S8[$!MBBY-3\U\JO9+-J]J7#(&1WVC#!S60R
M@/)["-<@RM4;SJ=&\=O1\+7T$R!=BKTP1+U#PG<<4?[67CF/%O6RE+/X;M[]
M,>7ZA<[&7N#V$;(5G3-_C\>5WN,*JR=ADMV2=<-*G.-8T]ZCE[O/QZB*2DOL
MBWS2 1PNT//;\FU)B: #E#.W^B@J3>,J,5$\NIG^F<9'4HS2I;)(!VL3_OED
MW_\A6:CS!^NI] NIVJCFF"]Z=^]\<Y[\*>$=<@7]K3SGNT']:9Y;)R6L366,
MB5;D8T3V)MJMA3:$_7K0X-P^:H\_>HX!\$>_6'<<_9:IFOP^:9-#C8W-\@C!
M(X>E4;CBPE\>?/S_\G^;P!AC_P-02P,$%     @ DXTG5;O97:-_%0  ?B0
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
M6/X.L\RL(2>BPOE 4T(?P]&;"#1' LTIS+PU74K&0>=Z??>++4ZL HRR@A<
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
MF%NAN"0_UW5CDNS)R?L6W]MUH. H(3^IH+?G:L2.$+J>0\(9E#VRF)AE''!
MOX9H:6B7^::Q\-#,@MW'=92AG0PB>^.[]$P03+J?\A&C.[;1JF0GUIJ;V=WJ
M&?!VO9C#IM22FN-%X\B6W":*'@?3\Q]6@?WS5-7E''J[2A,]S-9^=J+*?'&8
M9I7XTJ>%17"?UIQP R@] *3F1"(L;&DBZ7 /XDE %-/;FS%BGHI#/GV "'48
M<IU>![RU8<#[1<R[1=3C4WCAC56])B8^UU#K$LU;Q:%=V_6, GHEI)/.?E1Z
M4KKLL-)\3[Q':?V=1<;Z=9#W$Z*9^%*#:IANDO2OBYY?[)H K_E_9V9SJ*I'
MSB'SDQT<>K?WE]:$_0>G#CC@81YRB\X!BWJOQ=9?6 ,6*\,<$):0'GY'^Y#T
MHVL@G95(+:0,-PB8XKUQ72HF@$^0C,Z5:4A'<![<"'P^)W%VXX^J6J/IW'7>
MY<VPK'ATH9B8!VS!N9![].M@BY*0-U="D!^_#+EI2/P=AUIRFJ3T&$\N>E)5
M+2HZ=[]&Z<'HXQ#=!#'3&=I<_@WI.&8<8EXI)A*B5"T4G5NK40V7E)I-J:4R
MZWA+"D0;1HD<,;;%D+&X?T* DNDWF]C=:Z.@9+XEV9@DJ7+KY*(24D,53016
MF6<!+QS"<PX$2HN8>,A"\SZ<!6C?OZ2)>@;F4DFD04^%0*!BND@F$ +8+:',
M)E.ITCK.0K!^:W@"M(]25@2HZDBR91T&#<.@4P'IM%1,]L[LRF$">%6!G546
MU>0[>]@(L<'D\B^ H;SK!<Q50;\D*]6[0=U>T2$UJD;*4,Q& M5AJ'KS:;V8
M CY>4/.R,%L]\U2JQN0(I/?C[+GC=(8 N>@NF5<N*U%MX=">0+H0TI0S&M)$
M<2CB,!M!&#CD\F.6#+$I3AQ5VW9#:8:KA!A\?X !P"^+$=DB.ZNDQ_"1$QH"
M\E>!Z-\C$82/VD>8?X^C!TD(>NRF& B]C\L$$T(%4YY?[%2Q$4M.$]9PRQ36
MEW>4,+S9( 0^)/!9AOE4B=^ZK)1M(36!="!;PL*9=?HS2%X*\Q15C/U)]?IS
M8<5[ZI_!H7%F*;!?!.SG8/;0V$$S;Q(/VXY+5?V--)3.$V'70Z$;EGE\WW*:
MM(ZU2#UL$%TB=Y:Q$3M/*V$UW,NQM&$DK^CEN#=*54\:]O++LJ%E@"L#Q3"O
M(J(KY<[=; 1YFH)5,>NK@9BM!\I2<[3+KV !4'X*Y#Y"=&&B*U%]XY]W9/0K
M8A^H@#5G"7H,D!]7)=Y'E2AEFTC-Z+P);(GZ,8C/ 8*^)#6?5<-^E6HOI$#*
MSDR2CH$#IT1]%3 GFPG G#^$F<O$I.R"O$[O$C,C2R%;+:*FC%7ME+DI<@0@
M? &N[!I%6CXB#/*",>#?BR3+H3.8N;#K2NV10B4$>,5-I2/@#AQ;K)B=^3S8
MF&Y.=?EM@_B/V,TCGAN9JOJ&-)05A#V$ )+1YE6\I)-#;H?^\IY2]BJIB<B;
MSI; O<S%(0P!TROHY9NJ!U:2I.-;97!]THSS"+*^\SV0L1ARMLF+^+9Q8)!@
M8NI+P,LI7\ 92/,1.M<9!/Y5?@OW\)M00K,$EJ:Y:KB&[IEC7N?R'=![](_
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
MS \4B\_^/D3:J6 I,[8%(Q!I8'9@ZLA%<5%;_=VU=;7\Y#NC+0ST:>5ES'_
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
M<YNUC-M@UJ80M4U9<ELR>0"?]R^7F:^ '$B!.:\,YKQ41CHW68\'_/QCC7T
MGPP?"C?*+Q.J$ \8J<! MWLL5=79)L1FRZ9MT$</OKLM!+FJ_L<#YQLB^H=?
M*43-/T-O2=-]T'@<PF"89"C2S)P'1+_@ >TN]7!A[Z9<P,9AX4+R<?@:V*&*
M'EC[ZFA8GWSM3=U!5QNUE%MSO=+$_6P92-&49LR5.8.!N"1F,5H2YN[+A+&F
M?=RRA@-3FW04QG^^LG[H;F6 \4RXO^-+;&'V3WR(RSW.'BZI"1,I_Z:IEN%R
M:[X!:[C\[+3Y@XQSSON X0=_-82H7*B/6D&-H_@%QN5!:.9V:R?''VX3':B[
M?KJ87<E<VR#\+7PE=?X4$\,ZQ>2//37P?3#2 NX2K)@212E#RV*<^H0?QBQL
MC"%7YK.YB_WK88-?\]<VV04^+W7*&O]BHVI\?.0IK1=%SYOO@>$\"-YEZ.TV
M2)<\/+&/T69ZS/VB-*FR);;RRG*8"O("Q8UXH6=<E-ZS8%425=)2\"3^9*+Q
MZ9F\-MM05-,7S@>H_UN4]C1FS!L2WD'#)0;A_;$2TQ8B3"GQ;:,Q32TA<S<:
MO7N>%48H<_(^&U W0Q])\M^J[KV,-)S"H+]PP<(R;8F;4NLY\;0#Q>B?!4E,
MTJCH5#K' /L6+1KVZ?RAP3\]=?$=]^0G]:N8\W8]4Q[=E@($1V)SH&$^#ZB$
ME/S<$ZKUSIQ>6*C7HKRGN/BOR$"B/K2(Y!X1#I9YVC$W[M,/?Z5""84P,<JS
M F :2TLHV%%_$2MC>*7XZ_.0ZF=M5R1SO3<F*2YES#)(J)EI--#* Y3-'&GC
M7;GRPY5]YG>NIJX<'#VG^EV1!"+(HX?_=4WQ^Y) .P,D,W&M5$$SU#.POEV!
M^7/#YIY4YM>>CPL<C9)Z/9H(0*?XH\<"X:]\36VI7Y*9[7\X5EC<_.AG3'36
M(BT-P'Q5<65A;A$M,/($S;#8*6QZ%5$!+%I;J@JP.:Y67WC3(RG)5"L%T*[E
MEA']*)*$08ILH-F1YZ8'2MO<Q/6/BAUV:RX",!-F\N8]_0T>T2(;.I#P=[CN
MLQD?H!:8.AX4-063'_  6A%^.1PK1IG?0MW0G$%NJ/S%$NUH<!</X-S;&<L#
MO-IKH-NG71:B"!K$9A\>\&UF58<MOYNR^F R6@/JP#*<[NJ,6M%6P&U3;U?
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
M>K^>WJ\L6WT)FL@?G/.*P6T5!*P]-.>%^&V]VM7EGY)*(;GO%?!9R*TQ_DE
M6/T^R<) <1^CMN6;\HGT<A'2>L4=$NC#7649Z+-B.<$JJ7CSB+FO*L.(GY,(
MJ]Z:%XFL]D*&YN]*\1=YMI'Y+=>"U1N9JP4:.UOILM(L+[F@HIW9B1<2UKFZ
MBUI9W95<4USVI3]O-;P56MG%*N>D8J[]+<C;*_3=P- N%6:5"?3N<WW62]FD
MDAE(+ J4:B#+O7SUI4S(OK>$Q%)&R1:M7.[I ##FESA*$L(O50%G[M405A@\
MXM'3542.NU[.6CW@*/=0\1VBQLUW -T[8-S=F>(*1.[84&)UO<*093%NN*)!
M0<AR0\@MGL];&JBAP&11*W$A1B7AI.R)G0K!1%PA4U&@N%OCND=+*OGD284=
M=VP7[::T;4<5=GR[Q3-DGDBNL&,U3W%3$+*4IE+:*6XJ'UDRLROS%#>5CRS%
M@40*2.[8.N*:804DRV+1<+FV I+E!I+;.-RC-,!"0<<YZ(BKYBN)'M]Q^A&W
M,Z@H+GPWZ<<=[5NOT.2NTY)RJ\8/*; NK;VT*S'M+7/7YVUL;K$M@63U/]_$
M<M1M[?6<SF_#7-R[<>CBUHU.>[;/&=N[$7I5)ZQO?>K%U$UX<=+?3;/>*C[X
M;S/?M&3VX-]->\6.0U:=X XJ8H,0FN*>C>E0[( B*J#03? M5:;H+-AVCKC6
ME^\Y76A,;)92V 8%G^>;I"1J0Y07-D3ARYQE[XC2K!MJ2Y3=+J>WG]V$7Q%<
M^I8H#45P)>$'3/"VVJ%C%SMTO.0J*[U%Q_,J>SA;=* O*/N&#*_:HH/C:TGT
MX7)0,OJ44(A*1R/YV[QL9AW+-2NTNW4Z]G9/4JW"]AJ-G9%@6\6;LO*D2AR$
MC:RN-"PO ]LO6MQH.J<OSF))(S2"8/K2*<O#T;\F_G@$[Y4).>YW/N?Y%($T
MV=Q,&(^,NG,LU395GU]E9I=5MX\/#TQU%HYW2B9WB=_W7=P<72,A3?/D/SL(
M*J;]*KC2O5J<_3C(#:6Z:=0-N5;H(-E:,:X:NEW7I5BK/9JF;^X4X0R;3:1W
M*?&39.*&'AXEF:3R KSJ"^=N4(X4!,X.Y#!EC?U0&%AFV*,O^8=#@#T7PI8P
MS.-%HU$4\J45,]"S)7-SD.ZQVDDB7=K&!P?,XHISN'$X8.BITWR50ZU&W@<$
M6N5]J@. EMEU" "H.QB(4[\'40QD" G]Z0U=,"L$K D[]Q2S/LHGOA[VO#2)
M7%Y1-V1;ICU2IV1(J;I"854_DX0;D@CCYDNV:]47UU)C)=-4DV15 DNXW.0
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
M1C:BI]Z'P \B7\[D[-F%">Y:UDHVSN/Z:V2/L!PZ799A5E60E?^+=4NSK)6
MM:"!F-./>')%/"PR C'/D.%C&'OY>50YZ\C6!?3K2B%AZ=\GA(1+$"YJ\_L\
MI9-X\-C*57!1>,]F,1;J%#BEYIF29RLGXASE8J8GRG6A&#QUF'V#[P=33?1Y
M[FL /E%*Q#K6!?9I,VEBVL?,*XX-Y&[66M%L9)$X, @$W,]V* :\Y">S5%7A
M<=8L9SEXT!K_K5X(43-#+!1V9F;GBSE<%K."<2]V:Y:D%DD =T1YO[2LG&\6
M9V43HDLB7+ U.$G%+%#"-#_S4L*/9?%S8;K%)4/PT%C>B*DI7N6!>3>7)Y#
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
MC2%7?(R4 XB,:^)O?=4(Q246;S?J3I[9K3%)G+^41F/^TMB]I[6[F+H_:NX
M1G;B!H_N-!'D<IRZ:>?JPZ_I2+\"V4?NSUJ!N'-A/V\SNU3LQSA*V,3$24P#
M-_4?Z,)7YY@YW\"J-^4YG)D<KO _M[]UR7FW=]:YN>WV2._/WFWW:X]\N;G^
M_@WK\NNYZ=U1?\ZNKWK7EQ?GG=ON.>G=PC]X&'V/7'\F>$I]MNSY[9TZ^MXC
MY]>7EYV;'@R4W/YV_;W7N3KO::3[G[/NMUL"K?$#1-A1(G]T\;QJZ%/G=^C%
MEVYVZ^OU=^C>*8&O?>ETOL$O5YWOYQ?PY/&V+(JYOD5AVLH,:JZP7/!!)P-W
MG-"3[)=B3W#O+Z&6**D>W $;,:>-[B2-YI6179E3E6+*C#^S:+4(LT"@&LP$
M?4#TF?53M&]P2JR'2!N->M-X#L05M+'P_0B^.0BBQXR2V=_,8YUP2_((9'M1
MPX7I8@UGC[IW211,4OHF:[V66+S6SXB?6T7-BN"2"6[H=47P71)<KS<;BN [
M)'B[;K84P7=KPY\MF5 $5S:\V@17-ES9\$H0_)49^!?C'?FC<U9%[=5*T#LO
MI+_6R]@O_UQ*4D-H#>. \-;ZL.F8];IAO3R++NYC!FPK4^P+%%N1!C;73?5_
M^.5V&%-*OL*-84*Z89_VRU;ZN8: /"T#BO\O\+_G_WR&^\H"[FJ*\B436+;1
MOX2:]R/-V>HH23;L):2Z*Q;OA*,OH41I'+7JS3F.SIA6'J>C=%+II-+)HDY6
M PHHS[\C*[.#4F*I5@@71TNU0'NHI2ZOA2J!-"Q:,&"XH1"%TG6EZ^]-U\N*
M5++".\,V&G<'D;18=ZS5BG[*-S2Y,4^IAB8MPBG?T+:X^<&^AZ9TK8I#*[^N
M;>:ZR[6GQ;/05!S\TI,WR7:8*SYYW%'9;;D,T])T0];>Z2((J=K>%B)<J-"N
M7(9N:XW6\ODO%=F51.GGNOII6FW-UF4M9%3ZN:MM('0+V.9(@@UEQ0AGU[U;
M7&"U%:QP&(:G!/N8R+!"CM8V9&WYL-M,Y58M4@FXNYEY:FBV?/2@-+8\&MMH
M:BV[FG,+2F-7;136UJRW;[U2O33$EYOK7H]\[=Q\N;A2J8C-0ITR"+T$D]:V
M-;TMV:0=VBEO3T9*99"!S8ZQ;&N&KA(=[U[[#<?4FDU;J?_[4G^C 5;?D05\
MRHIRNO_YUKWJ52&!(F\[,JD3L^4Z3&F+,[.23<5NZ/_D2K?291N4>"OQWL]1
M8>4+S3-739JLM9X;X*E@89_ (S]H"I]2P?C!SCL:MF89#37M6*UI1\/0+'-Y
MUE$%RP>FG69+:S14T4[%M-,T-<NJ>BB[@ IN:$+=V!LR8-"G#S2(QB-XL=Q1
M[*XM347,BN%H1D.NTZ^"#2FMP3!PFG[Y/+TR!LY*HU9RT+*UEBDW::TTZ@T:
M9>E:L_WF\YE*'ZM_H2&-W8 Y9;<_\D,_26.VXYT*V0\V*#!,K:7+.@]7!04[
MJ^37',1<*F0_;.TT;<V279"GM'/K(;NA.<TG#ARJ:LA^S8^O'L)]JHZ5K6)4
M86BF([<:OPIVH[1&PC9L%:-75YL -K?DYM*5-KU!F]K6LC8=6GS>&470^_^Z
MN,,\B0;$#U,WO/?QN"TW26@JSRV_HT"@##6.,IQ[4].=K2_X576NY;)ZAJVU
MC>5 0Z4!WIGV6X9F6*K*_9UIO^EH+;M9LC3#O(87AU'Y#0#5FN)-;%/3U!JV
MY)K 0S!$)>#N1E:G86IM1SKF4!I;'HTU3%UK5'2+8:6R3^[[=8 %#"_I^,75
MV?77+OE\<_UUU7GN*E5RB'.F$ PU[)::,ZW8G&E3,U9L5:)2&0>FG1 .&*JB
MH6K::;>UAM$J6:I!/EJX[=YT>[=$+*PO_[KZ YR;W<RJ')F.?:QF8[?#CG4,
MQ)'9,H]54J!2.M-HFDIG]JDS#;N]K#/O("C_'9SLU^[5+>'QN8K'W_7DI=W<
M^IKD@\@^EE, -@HG5A1'JT#_G:E]TU %"^],[0U35I%F>;$-FW#XM?OY^J8K
MX VY[?RG"IOT'6!@)&DZ02W&+I$1,1M:>\49*2K54!F-PBF MM*HTFB4W>9;
MI+^_1$3FGK.,/SFZZ9Y=_]Z]^5-68FRW20G)&Y'N9X9J/<.YA;U)*\>E?<XC
M+C&B8H&\4A6E*OM6E6K%O@NK$<\F<:RV[*LF F]I=MM1 +PT %QK6<OX6T6T
ME=$G0^S1JA2J' K5U)RFK(5Q)0IH%SSP.1U0\,']RH6I:A)-FN'1+,FY:36-
MMD,16+^Z3H,>2:^O4_I>-7VW-,>2"]R5OI=^VKQIEFW[_Z<MV)(DJU7_[W(-
ML:,Y:@7QX:P@-E6&XK#UU6AJ1DORHEFEL/M36,SP+N\/7OD,R$L*?M55BPID
M!DH62'P_FN 6DQ4S:*:IM?6MKS/>&;7V&BOM20HV0RH6.++EW*_*E+PW V W
M-=W8^C8@R@"4S0#8AM9H'_I6!=W.S=7%U9<>^=:](;W?.C<5V*Q G9*N)G_+
M46-8;O(J\7[OXEWY,'VA4.%7-_$]%8R7LH18!M2&[JO]]BJVHQ?GF8J2#UTS
M&ULO#U*:*5LS[;+-][^U4-$/)JG$.L7#,"IER+"4TOD?1$JM#-PM#3!0"ELJ
MA6U82F$/26'MY>TP*I]">$G!_^A>?/GMMGM..K]W;SI?NCP+WB/7WV][MYVK
M\XNK+^0H'4:3Q W[B5K.K]8HEYY+I5RC7)&4@%(5I2K[5I5*Q^AR<_0' ?@K
M@N<=6VLY<A%]%92_M'@<^-%8L?I8A="5TJB6VJ"N5!IER=HZMD0Q[I;3Y.]H
M.JX4V1L9EJ>I6;M>X%O5A%U)I6 S"]?4#%/ZIK;* %32 -@[WM%#&8!2& #]
MJ2V+/J4NC '^[?L/DE?J\P<1E:RY3G\+K1OKM\XI #^RSW@!=6.4EZ%H*^<]
MMIG9#/WCFSCL 7BC\2)N,^V<P^U"Y_C/89PU-I/2FA<%47R2B6*AZ_,WAMQ,
M(%,"/Z0U\;>^:H3B$@.<C;J3QXDU)I7SE])HS%\:N_>T=A=3]T?-'<#(3MS@
MT9TF@ER.4S?M?#Y,&!*D7X'L(_=GK4#<.=S+V\PN%?LQCA(_]2-0&1JXJ?]
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
M  !"RP, %0              @ &1)P  9'-G>"TR,#(R,#<S,5]D968N>&UL
M4$L! A0#%     @ DXTG5:.!RR^9AP  ^>X( !4              ( !"EX
M &1S9W@M,C R,C W,S%?;&%B+GAM;%!+ 0(4 Q0    ( ).-)U4-V"+T=%\
M .)W!P 5              "  =;E  !D<V=X+3(P,C(P-S,Q7W!R92YX;6Q0
M2P$"% ,4    " "3C2=5G)H0 ODR  "%5@( %               @ %]10$
M9'-G>"TR,#(R,#<S,7@V:RYH=&U02P$"% ,4    " "3C2=5!3]I#;Z\ @",
MGB  &               @ &H> $ 9'-G>"TR,#(R,#<S,7AE>#DY9#$N:'1M
M4$L! A0#%     @ DXTG58R\G$TW*   "RX  !L              ( !G#4$
M &1S9W@M,C R,C W,S%X97@Y.60Q,# Q+FIP9U!+ 0(4 Q0    ( ).-)U6[
MV5VC?Q4  'XD   ;              "  0Q>! !D<V=X+3(P,C(P-S,Q>&5X
M.3ED,3 P,BYJ<&=02P$"% ,4    " "3C2=5-.^X;R$A  #S)   &P
M        @ '$<P0 9'-G>"TR,#(R,#<S,7AE>#DY9#$P,C@N:G!G4$L! A0#
M%     @ DXTG56CS/=Z%3@  @$L% !@              ( !'I4$ &1S9W@M
I,C R,C W,S%X97@Y.60R+FAT;5!+!08     "P + /0"  #9XP0    !

end
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
